Re: 2.6.26-rc4: RIP __call_for_each_cic+0x20/0x50

From: Fabio Checconi
Date: Wed May 28 2008 - 07:44:21 EST


> From: Jens Axboe <jens.axboe@xxxxxxxxxx>
> 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().
--
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/