Messages in this thread | | | Date | Thu, 23 Oct 2014 20:18:18 +0200 | From | Oleg Nesterov <> | Subject | Re: introduce task_rcu_dereference? |
| |
On 10/23, Kirill Tkhai wrote: > > I'm agree generic helper is better. But probe_slab_address() has a sence > if we know that SDBR is worse in our subject area.
And I still think it is worse.
> Less of code is > easier to support :)
Sure, but ignoring the comments, SDBR needs the same code in task_rcu_dereference() ? Except, of course
- probe_slab_address(&task->sighand, sighand); + sighand = task->sighand;
or how do you think we can simplify it?
> probe_slab_address() it's not a trivial logic.
But it already has a user. And probably it can have more.
To me the usage of SDBR is not trivial (and confusing) in this case. Once again, ignoring the CONFIG_DEBUG_PAGEALLOC problems it does not help at all.
With or without SDBR rq->curr can be reused and we need to avoid this race. The fact that with SDBR it can be reused only as another instance of task_struct is absolutely immaterial imo.
Not to mention that SDBR still adds some overhead while probe_slab() is free unless CONFIG_DEBUG_PAGEALLOC, but this option adds a large slowdown anyway.
But again, I can't really work today, perhaps I missed something. Perhaps you can show a better code which relies on SDBR?
Oleg.
| |