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

From: Vivek Goyal
Date: Mon Jan 23 2012 - 11:13:12 EST


On Mon, Jan 23, 2012 at 11:10:42AM -0500, Vivek Goyal wrote:
> On Mon, Jan 23, 2012 at 07:57:45AM -0800, Tejun Heo wrote:
> > On Mon, Jan 23, 2012 at 10:52:16AM -0500, Vivek Goyal wrote:
> > > Atleast throttling rules should not disappear over elevator switch. They
> > > are per device and not per IO scheduler. Think of losing nr_requests
> > > settings just because elevator switch happened.
> > >
> > > Elevator switch can be low frequency but how would a user space know
> > > that elevator switch failed that's why we lost our rules and now lets
> > > put the rules back.
> >
> > It's simple - store all the policy rules before switching elevators
> > and restore them afterwards regardless of success / failure.
>
> This does not work well in hierachical management/scenario. Think that
> a user gets an upper limit of 10MB/s on a device and now user can manage
> its own children groups and divide allocated 10MB/s in children the way
> he wants.
>
> Now if root does the elevator switch, and saves all the rules (including
> user's rules) and then restores back, these can very well race with
> user's scripts of changing rules. If user changed a cgroup device rule
> during elevator switch and after elevator switch root restored back
> old rules, user's new rule will be lost leading to confusion.

How about draining throttle groups only on queue exit (blk_cleanup_queue())
and not on elevator switch.

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/