Re: [tip:locking/core] locking/rwsem: Fix lock optimistic spinning when owner is not running

From: Oleg Nesterov
Date: Tue Mar 10 2015 - 14:35:50 EST


On 03/10, Linus Torvalds wrote:
>
> So I'm not a huge fan of SLAB_DESTROY_BY_RCU in general, but for
> really core data structures like this, I think it's worth it.

I agree, but we have other users which can't be fixed if we just add
SLAB_DESTROY_BY_RCU to task_struct_cachep. So we need something else
anyway.

> The
> overhead of "call_rcu()" can be quite noticeable,

Yes, this was my concern too,

> and the other
> alternative solutions (like that suggested task_rcu_dereference()) are
> even *more* complex and subtle

Yes, but at least the ugliness is hidden inside task_rcu_dereference().
The usage is simple.

> and generally perform worse.

Well, task_rcu_dereference() should be cheap enough. probe_slab_address()
is a plain LOAD unless CONFIG_DEBUG_PAGEALLOC.

But!

> I'm not claiming it's perfect,

Same here, it is not that I think task_rcu_dereference() is very nice.


So I leave this to you and Peter ;)

Oleg.

--
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/