Messages in this thread | | | Date | Fri, 3 Feb 2012 16:53:49 -0500 | From | Vivek Goyal <> | Subject | Re: [PATCH UPDATED 11/11] blkcg: unify blkg's for blkcg policies |
| |
On Fri, Feb 03, 2012 at 01:47:19PM -0800, Tejun Heo wrote: > On Fri, Feb 03, 2012 at 04:44:35PM -0500, Vivek Goyal wrote: > > Ok, looks like now it is needed because blkcg lock will just gurantee that > > blkg is around but blkg->pd[plid] can disappear if you are not holding > > blkio_list lock (update_root_blkgs). > > > > I am wondering if we should take blkcg->lock if blkg is on blkcg list and > > is being modified in place. That way, once we are switching elevator, > > we should be able to shoot down the policy data without taking blkio_list > > lock. > > I think it gotta become something per-queue, not global, and if we > make it per-queue, it should be able to live inside queue_lock.
Hmm... then blkiocg_reset_stats() will run into lock ordering issue. Can't hold queue lock inside blkcg lock. I guess you will do some kind of locking trick again as you did for io context logic.
Thanks Vivek
| |