Thread (32 messages) 32 messages, 4 authors, 2013-01-21

Re: [RFC][PATCH v3] slub: Keep page and object in sync in slab_alloc_node()

From: Steven Rostedt <rostedt@goodmis.org>
Date: 2013-01-18 19:20:39
Also in: linux-mm, lkml

On Fri, 2013-01-18 at 11:09 -0800, Eric Dumazet wrote:
On Fri, 2013-01-18 at 18:40 +0000, Christoph Lameter wrote:
quoted
The fetching of the tid is the only critical thing here. If the tid is
retrieved from the right cpu then the cmpxchg will fail if any changes
occured to freelist or the page variable.

The tid can be retrieved without disabling preemption through
this_cpu_read().
Strictly speaking, this_cpu_read() _does_ disable preemption.
I was thinking the same thing.
Of course, on x86, this_cpu_read() uses __this_cpu_read()

Looking at using this_cpu_read() on tid, I can't see what would break.
We still need the check for page being NULL in node_match(). I'm still
uneasy about it. Just because we can't see how it might break doesn't
mean that it wont. As we have already found a bit of bugs in the current
code. I'd feel more comfortable with the explicit preempt_disable(). And
this is coming from an -rt guy that tries to avoid preempt_disable().
But you're (Christoph) the maintainer.

I guess if you use this_cpu_read() you don't need that barrier anymore.

-- Steve


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help