Messages in this thread | | | Date | Wed, 1 Dec 2010 21:11:01 +0800 | Subject | Re: [PATCH] add rb_next in block throttle | From | Hillf Danton <> |
| |
On Tue, Nov 30, 2010 at 10:36 PM, Vivek Goyal <vgoyal@redhat.com> wrote: > On Fri, Nov 26, 2010 at 10:06:27PM +0800, Hillf Danton wrote: >> When selecting group for dispatching, the first entry of the service >> tree is sequentially dequeued, then the first entry is recomputed by >> calling rb_first(). >> >> When the first is removed from service tree, new first could also be >> computed with rb_next(), since it could be faster than rb_first in >> this special environment. >> >> Signed-off-by: Hillf Danton <dhillf@gmail.com> >> --- > > Ok. So set the leftmost element with the help of rb_next() at the time of > deletion of existing leftmost element. Not sure whether it is cheaper or > not but does not harm doing it this way. > > Have you tested it to make sure nothing is broken?
Hm..if broken, we rush out and gnarl at Andrea Arcangeli as loud as we could.
Thanks Hillf > > Thanks > Vivek > >> >> --- a/block/blk-throttle.c 2010-11-01 19:54:12.000000000 +0800 >> +++ b/block/blk-throttle.c 2010-11-26 21:27:40.000000000 +0800 >> @@ -251,7 +251,7 @@ static void rb_erase_init(struct rb_node >> static void throtl_rb_erase(struct rb_node *n, struct throtl_rb_root *root) >> { >> if (root->left == n) >> - root->left = NULL; >> + root->left = rb_next(n); >> rb_erase_init(n, &root->rb); >> --root->count; >> } >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> Please read the FAQ at http://www.tux.org/lkml/ > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |