lkml.org 
[lkml]   [2008]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [rfc] SLOB memory ordering issue


On Thu, 16 Oct 2008, Nick Piggin wrote:
>
> Now they allocate these guys, take a lock, then insert them into the
> page tables. The lock is only an acquire barrier, so it can leak past
> stores.

I think that Matt's point was that the code is buggy regardless of any
ctor or not.

If you make an allocation visible to other CPU's, you would need to make
sure that allocation is stable with a smp_wmb() before you update the
pointer to that allocation.

So the code that makes a page visible should just always do that
synchronization.

And it has nothing to do with ctors or not. It's true whether you do the
initialization by hand, or whether you use a ctor.

And more importantly, putting the write barrier in the ctor or in the
memory allocator is simply broken. It's not a ctor/allocator issue. Why?
Because even if you have a ctor, there is absolutely *nothing* that says
that the ctor will be sufficient to initialize everything. Most ctors, in
fact, are just initializing the basic fields - the person that does the
allocation should finish things up.

The fact that _some_ people using an allocator with a ctor may not do
anything but the ctor to the page is immaterial.

Linus


\
 
 \ /
  Last update: 2008-10-15 19:35    [W:0.093 / U:1.352 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site