[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <200810160334.13082.nickpiggin@yahoo.com.au>
Date: Thu, 16 Oct 2008 03:34:12 +1100
From: Nick Piggin <nickpiggin@...oo.com.au>
To: torvalds@...ux-foundation.org,
Pekka Enberg <penberg@...helsinki.fi>,
Matt Mackall <mpm@...enic.com>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: [rfc] SLOB memory ordering issue
I think I see a possible memory ordering problem with SLOB:
In slab caches with constructors, the constructor is run
before returning the object to caller, with no memory barrier
afterwards.
Now there is nothing that indicates the _exact_ behaviour
required here. Is it at all reasonable to expect ->ctor() to
be visible to all CPUs and not just the allocating CPU?
SLAB and SLUB don't appear to have this problem. Of course,
they have per-CPU fastpath queues, so _can_ have effectively
exactly the same ordering issue if the object was brought
back into the "initialized" state before being freed, rather
than by ->ctor(). However in that case, it is at least
kind of visible to the caller.
Anyone care or think it is a problem? Should we just document
that ->ctor doesn't imply any barriers? Better ideas?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists