I do wonder if PREEMPT_RCU is broken.
That repeated 0x6b is POISON_FREE, and the code is
cmp -0x10(%rdx),%edi
which is the load of "pnr->nr". So 'pnr' has been free'd.
On Tue, 27 May 2008, Oleg Nesterov wrote:
That is a *very* unlikely race, especially as that bad_fork_free_pid case
would only happen if pid_ns_prepare_proc() fails. And if it fails, it's
still very unlikely to hit, I think.
That said, it does smell like a bug. But I *really* would be much much
happier if even SRCU at least waited for a grace period, so that it would
always be safe to just disable preemption for a "rcu_read_lock()". That
way, things that take spinlocks are safe even with SRCU.
Paul? How hard would it be to make preemptable RCU just honor that classic
RCU behavior?
Linus
--