Re: cfq-iosched.c:RB_CLEAR_COLOR

From: Jens Axboe
Date: Wed Jun 21 2006 - 03:36:31 EST


On Wed, Jun 21 2006, David Woodhouse wrote:
> On Tue, 2006-06-20 at 18:03 -0700, Linus Torvalds wrote:
> > > There were two explicit calls in the cfq-iosched.c file
> > > to RB_CLEAR_COLOR, only the one in cfq_del_crq_rb() got
> > > removed so the build fails.
>
> Apologies for that; the new one got added only last week, and escaped my
> attention.
>
> > I think the right fix is to just remove the RB_CLEAR_COLOR() call, since
> > the memset will set everything to 0/NULL, which should be the correct
> > initialization these days anyway.
> >
> > David (the other one - dwmw2), pls confirm?
>
> Yes, that looks correct. Other code, including the AS scheduler, was
> (ab)using the colour field by storing a 'RB_NONE' value which was
> neither red nor black to mark an 'off-tree' node, then checking for it
> with ON_RB(). I changed that scheme -- we now set the node's parent
> pointer to point to itself to mark an off-tree node.
>
> However, the cfq scheduler looks like it only inherited the macros from
> AS, and was never actually _checking_ if a given node was on-tree or
> not. So just dropping the magic initialisation stuff there is fine.

I cleaned up the ioscheduler rb private defines now, instead of having
each roll their own. Result is here:

http://brick.kernel.dk/git/?p=linux-2.6-block.git;a=commitdiff;h=52e7beda68fe0b08d74b6665d47e6024efe46101

--
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/