Re: [PATCH] local_t : Documentation
Pavel Machek <[email protected]>
| Newsgroups | gmane.linux.systemtap,gmane.linux.kernel,gmane.linux.kernel.tracing |
|---|---|
| Message-ID | <[email protected]> |
On Tue 2007-01-09 13:01:10, Andrew Morton wrote: > On Mon, 8 Jan 2007 22:14:46 -0500 > Mathieu Desnoyers <[email protected]> wrote: > > > +* How to use local atomic operations > > + > > +#include <linux/percpu.h> > > +#include <asm/local.h> > > + > > +static DEFINE_PER_CPU(local_t, counters) = LOCAL_INIT(0); > > + > > + > > +* Counting > > + > > +In preemptible context, use get_cpu_var() and put_cpu_var() around local atomic > > +operations : it makes sure that preemption is disabled around write access to > > +the per cpu variable. For instance : > > + > > + local_inc(&get_cpu_var(counters)); > > + put_cpu_var(counters); > > Confused. The whole point behind local_t is that we can do > atomic-wrt-interrupts inc and dec on them. Could we get this short of two line description into the Doc/ file? It talks about how to implement them, mentions LOCK prefixes unlikely to be present on non-i386, but does not tell me what they guarantee... Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html