Re: [PATCH] only irq-safe atomic ops

Andrew Morton (akpm@zip.com.au)
Sat, 23 Feb 2002 15:56:36 -0800


Robert Love wrote:
>
> On Sat, 2002-02-23 at 18:13, Robert Love wrote:
> > On Sat, 2002-02-23 at 17:10, Andrew Morton wrote:
> >
> > > ooh. me likee.
> > >
> > > #define smp_get_cpuid() ({ preempt_disable(); smp_processor_id(); })
> > > #define smp_put_cpuid() preempt_enable()
> > >
> > > Does rml likee?
> >
> > Yah, that works.
>
> OK, I still likee, but I was just thinking, if we are going to add have
> to add something why not consider the irq-safe atomic ops? It is
> certainly the most optimal.
>

For the situation Victor described:

const int cpu = smp_get_cpuid();

per_cpu_array_foo[cpu] = per_cpu_array_bar[cpu] +
per_cpu_array_zot[cpu];

smp_put_cpuid();

It's a nice interface - it says "pin down and return the current
CPU ID".

-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/