Messages in this thread | | | Subject | Re: [PATCH 0/2] jump label: 2.6.38 updates | From | Steven Rostedt <> | Date | Mon, 14 Feb 2011 16:29:24 -0500 |
| |
On Mon, 2011-02-14 at 19:24 +0100, Peter Zijlstra wrote: > On Mon, 2011-02-14 at 17:50 +0000, Will Newton wrote: > > > > It would observe a stale value, but that value would only be updated > > when the cache line was reloaded from main memory which would have to > > be triggered by either eviction or cache flushing. So it could get > > pretty stale. Whilst that's probably within the spec. of atomic_read I > > suspect it would lead to problems in practice. I could be wrong > > though. > > Right, so the typical scenario that could cause pain is something like: > > while (atomic_read(&foo) != n) > cpu_relax(); > > and the problem is that cpu_relax() doesn't know which particular > cacheline to flush in order to make things go faster, hm?
But what about any global variable? Can't we also just have:
while (global != n) cpu_relax();
?
-- Steve
| |