Re: [PATCH 08/17] blkcg: shoot down blkio_groups on elevator switch

From: Vivek Goyal
Date: Mon Jan 23 2012 - 10:20:59 EST


On Sat, Jan 21, 2012 at 07:25:16PM -0800, Tejun Heo wrote:

[..]
> diff --git a/block/elevator.c b/block/elevator.c
> index 078a491..5e371e4 100644
> --- a/block/elevator.c
> +++ b/block/elevator.c
> @@ -38,6 +38,7 @@
> #include <trace/events/block.h>
>
> #include "blk.h"
> +#include "blk-cgroup.h"
>
> static DEFINE_SPINLOCK(elv_list_lock);
> static LIST_HEAD(elv_list);
> @@ -939,6 +940,7 @@ static int elevator_switch(struct request_queue *q, struct elevator_type *new_e)
>
> spin_lock_irq(q->queue_lock);
> ioc_clear_queue(q);
> + blkcg_clear_queue(q);

What happens to per device rules (per device weight and per device
throttling rules)? IIUC, in new scheme of things, upon elevator switch
these rules will be gone.

I can understand per device weight rules disappearing but what about
throttling rules. They are independent of IO scheduler and change of
io scheduler should not cause per device throttling rules to get lost.

This just gets worse if elevator switch fails and we fall back to old
elevator. But now we have lost of the rules as rules were part of
blkg.conf and old groups are gone.

Thanks
Vivek
--
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/