lkml.org 
[lkml]   [2010]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [thiscpuops upgrade 10/10] Lockless (and preemptless) fastpaths for slub
On Wed, 24 Nov 2010, Jeremy Fitzhardinge wrote:

> On 11/24/2010 08:17 AM, Christoph Lameter wrote:
> > On Wed, 24 Nov 2010, Pekka Enberg wrote:
> >
> >>> + /*
> >>> + * The transaction ids are globally unique per cpu and per operation on
> >>> + * a per cpu queue. Thus they can be guarantee that the cmpxchg_double
> >>> + * occurs on the right processor and that there was no operation on the
> >>> + * linked list in between.
> >>> + */
> >>> + tid = c->tid;
> >>> + barrier();
> >> You're using a compiler barrier after every load from c->tid. Why?
> > To make sure that the compiler does not do something like loading the tid
> > later. The tid must be obtained before the rest of the information from
> > the per cpu slab data is retrieved in order to ensure that we have a
> > consistent set of data to operate on.
>
> Isn't that best expressed with ACCESS_ONCE()?

ACCESS_ONCE does not prevent reordering if used once it seems when one
reads the comments. ACCESS_ONCE() uses volatile? Uggh.




\
 
 \ /
  Last update: 2010-11-24 20:57    [from the cache]
©2003-2011 Jasper Spaans