[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080528115814.GT25504@kernel.dk>
Date: Wed, 28 May 2008 13:58:15 +0200
From: Jens Axboe <jens.axboe@...cle.com>
To: Fabio Checconi <fchecconi@...il.com>
Cc: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com>,
Alexey Dobriyan <adobriyan@...il.com>, torvalds@...l.org,
Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org
Subject: Re: 2.6.26-rc4: RIP __call_for_each_cic+0x20/0x50
On Wed, May 28 2008, Fabio Checconi wrote:
> > From: Jens Axboe <jens.axboe@...cle.com>
> > Date: Wed, May 28, 2008 12:07:21PM +0200
> >
> > On Tue, May 27 2008, Paul E. McKenney wrote:
> > > o When calling cfq_slab_kill(), for example from cfq_exit(),
> > > what ensures that all previous RCU callbacks have completed?
> > >
> > > I suspect that you need an rcu_barrier() at the beginning
> > > of cfq_slab_kill(), but I could be missing something.
> >
> > So we have two callers of that, one is from the error path at init time
> > and is obviously ok. The other does need rcu_barrier()! I'll add that.
> >
>
> But isn't the ioc_gone completion (notified only when there are no more
> cic allocated) assuring that cfq_slab_kill() is called only after all
> the rcu callbacks are completed? This should avoid the need for the
> rcu_barrier().
Good point, I was thinking we decremented the mod count on call_rcu(),
but we don't actually do it before the rcu callback has completed. So
that part is actually OK already.
--
Jens Axboe
--
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