Messages in this thread | | | Subject | Re: [BUG] 2.6.37-rc3 massive interactivity regression on ARM | From | Peter Zijlstra <> | Date | Fri, 10 Dec 2010 19:46:28 +0100 |
| |
On Fri, 2010-12-10 at 12:39 -0600, Christoph Lameter wrote: > On Fri, 10 Dec 2010, Eric Dumazet wrote: > > > > Yeah, but that kinda defeats the purpose of having it implemented in > > > seqlock.h. Ideally we'd teach gcc about these long pointers and have > > > something like: > > > > > > write_seqcount_begin(&this_cpu_read(irq_time_seq)); > > > > > > do the right thing. > > > > gcc wont be able to do this yet (%fs/%gs selectors) > > The kernel can do that using the __percpu annotation.
That's not true:
# define __percpu
Its a complete NOP.
> > But we can provide this_cpu_write_seqcount_{begin|end}() > > No we cannot do hat. this_cpu ops are for per cpu data and not for locking > values shared between processors. We have a mechanism for passing per cpu > pointers with a corresponding annotation.
-enoparse, its not locking anything, is a per-cpu sequence count.
| |