On Tue, 2010-04-13 at 11:23 +1000, Benjamin Herrenschmidt wrote: > > + * If there are, but we fail to batch, we need to IPI (all?) CPUs so as > > + * to serialize against the IRQ disable. In case we do batch, the RCU > > + * grace period is at least long enough to cover IRQ disabled sections > > + * (XXX assumption, not strictly true). > > Yeah well ... I'm not that familiar with RCU anymore. Back when I wrote > that, iirc, I would more or less be safe against a CPU that doesn't > schedule, but things may have well changed. > > We are trying to be safe against another CPU walking page tables in the > asm lockless hash miss or TLB miss code. Note that sparc64 has a similar > issue. This is highly optimized asm code that -cannot- call into things > like rcu_read_lock(). Right, so Paul has been working hard to remove certain implementation artifact from RCU, such as the preempt-disable == rcu_read_lock thing. Now, even Preemptible RCU has IRQ-disabled == rcu_read_lock, simply because the RCU grace period state machine is driven from an interrupt. But there is no such requirement on RCU at all, so in the interest of removing assumptions and code validating we're trying to remove such things. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html