Hello, On Wed, Sep 04, 2013 at 08:45:33AM -0700, Anatol Pomozov wrote: > I am not an expect in block code, so I have a few questions here: > > - are we sure that this operation is atomic? What if blkg->q becomes > dead right after we checked it, and blkg->q->queue_lock got invalid so > we have the same crash as before? request_queue lock switching is something inherently broken in block layer. It's unsalvageable. Maybe we can drop lock switching once blk-mq is fully merged. > - do we need to check blk_queue_dying() in every single place where we > iterate over blkcg->blkg_list? > > - would it be better to remove block cgroup from blkcg->blkg_list > before queue marked as dead? I have no idea. No matter what we do, it's working around something fundamentally broken in a half-assed way. Hmmm... there was an effort to remove the lock switching. I don't think it actually happened tho. :( Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html