Messages in this thread | | | Date | Mon, 23 Jan 2012 11:13:08 -0500 | From | Vivek Goyal <> | Subject | Re: [PATCH 08/17] blkcg: shoot down blkio_groups on elevator switch |
| |
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
| |