Re: PREEMPT_RCU breaks anon_vma locking ?
From: Hugh Dickins
Date: Fri Mar 02 2007 - 11:28:20 EST
On Sat, 24 Feb 2007, Paul E. McKenney wrote:
> On Sat, Feb 24, 2007 at 10:04:04PM +0000, Hugh Dickins wrote:
> >
> > Have you checked through the SLAB_DESTROY_BY_RCU end in slab.c?
> > Is what that's doing still valid?
>
> The only thing I see needed due to PREEMPT_RCU is the following comment
> change.
>
> For a terrified few minutes, I thought that the code assumed that struct
> rcu_head was the same size as struct list_head, but it turns out to only
> assume that struct slab is at least as large as struct slab_rcu.
>
> Thanx, Paul
Thanks for enduring the terror, checking it out, and arriving at
such a reassuring conclusion. Andrew, please add this to your -mm
collection after (or folded into) Paul's rcu-preemptible-rcu.patch.
PREEMPT_RCU has stricter needs: updated comment on SLAB_DESTROY_BY_RCU.
Signed-off-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
Acked-by: Hugh Dickins <hugh@xxxxxxxxxxx>
---
diff -urpNa -X dontdiff linux-2.6.20/mm/slab.c linux-2.6.20-slabrcufix/mm/slab.c
--- linux-2.6.20/mm/slab.c 2007-02-04 10:44:54.000000000 -0800
+++ linux-2.6.20-slabrcufix/mm/slab.c 2007-02-24 14:50:39.000000000 -0800
@@ -238,7 +238,7 @@ struct slab {
* other kind of object (which our subsystem's lock might corrupt).
*
* rcu_read_lock before reading the address, then rcu_read_unlock after
- * taking the spinlock within the structure expected at that address.
+ * releasing the spinlock within the structure expected at that address.
*
* We assume struct slab_rcu can overlay struct slab when destroying.
*/
-
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/