Re: [PATCH RFC tip/core/rcu 11/11] rcu: move TREE_RCU from softirqto kthread

From: Christoph Lameter
Date: Wed Feb 23 2011 - 14:40:49 EST


On Wed, 23 Feb 2011, Peter Zijlstra wrote:

> On Wed, 2011-02-23 at 13:19 -0600, Christoph Lameter wrote:
>
> > this_cpu_inc is already percpu atomic. On x86 it is an instruction that
> > cannot be interrupted nor preempted while in progress.
>
> On x86, yes, but is this true for all architectures? I guess the
> fallback is implemented with local_irq_disable() which might be good
> enough for some but not for NMI usage.

Fallback is to do preempt_disable(). But you can also disable interrupts
on fallback by putting an irqsafe_ prefix before them. Its just more
expensive and typically not needed.

There is no way to create an nmi safe per cpu atomicity emulation as far
as I can tell. It is possible to check at compile time if the arch has
per cpu atomic instructions available via CONFIG_CMPXCHG_LOCAL which
allows optimized per cpu atomic use for arches that satisfy the safety
requirements.
--
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/