On Fri, 2013-01-18 at 11:09 -0800, Eric Dumazet wrote: > On Fri, 2013-01-18 at 18:40 +0000, Christoph Lameter wrote: > > > 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@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>