Re: [PATCH 06/12] blkcg: use q and plid instead of opaque void *for blkio_group association

From: Tejun Heo
Date: Thu Jan 19 2012 - 11:25:51 EST


Hello,

On Thu, Jan 19, 2012 at 11:16:42AM -0500, Vivek Goyal wrote:
> 1. elv_quiesce_start
> 2. unregister old elevator
> 3. ioc_clear_queue
> 4. allocate new elevator
> 5. init new elevator
> 6. exit old elevator
>
> So any groups on old elevator, will be cleaned up in step 6. So till step
> 5 these groups are still present on blkcg list. Now assume between step 5
> and step 6, if a cgroup removal takes place and blkcg tries to call into
> elevator to remove that group, will it not be accessing the wrong cfqd
> in cfq_destroy_cfqg() (cfqd of new elevator instead of old elevator).
>
> What am I missing?

I don't think you're missing anything. The issue is moot as the
second patchset, which I'll probably post today, unifies blkg's so
that there's single blkg per cgroup - request_queue pair.

Hmmm... we can add code to shoot down blkg's along with ioc's while
preparing for elevator switch or just note the problem in the commit
message and explain the problem is transitional. I'll see how complex
shooting down blkg's would be.

Thanks.

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