[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140609182728.GB31499@redhat.com>
Date: Mon, 9 Jun 2014 14:27:29 -0400
From: Vivek Goyal <vgoyal@...hat.com>
To: Joe Lawrence <joe.lawrence@...atus.com>
Cc: linux-kernel@...r.kernel.org, Tejun Heo <tj@...nel.org>
Subject: Re: docker crashes rcuos in __blkg_release_rcu
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 majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists