On Mon, Jun 09, 2014 at 01:47:08PM -0400, Vivek Goyal wrote: > On Sun, Jun 08, 2014 at 06:22:00PM -0400, Joe Lawrence wrote: > > [..] > > Summary thus far: > > > > R12: ffff88103c17a130 = struct rcu_head *rcu_head > > R13: ffff88103c17a080 = struct blkcg_gq *blkg > > ffff88103fc7df90 = struct request_queue *blkg->q (contains 0x6b > > poison-pattern) > > > > commit 2a4fd070 "blkcg: move bulk of blkcg_gq release operations to the > > RCU callback" shuffled around some code in this space, introducing the > > the calls to spin_[un]lock_irq(blkg->q->queue_lock). > > > > Hi Joe, > > Thanks for reporting and debugging this issue. So in summary it looks > like that we have freed request queue associated with the blkg and > when blkg is freed later and tries to access spin lock embedded in > request queue, it crashes. > > So the question is why request queue is being freed early. Are there any > reference counting issues.
I am wondering if we need to take a reference on the queue (blk_get_queue()) in blkg_alloc(), to make sure request queue is still around when blkg is being freed. I will try to reproduce the issue locally. Thanks Vivek -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

