Re: [PATCH UPDATED 11/11] blkcg: unify blkg's for blkcg policies

From: Vivek Goyal
Date: Fri Feb 03 2012 - 16:53:52 EST


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