Messages in this thread | | | Date | Mon, 12 Sep 2011 16:23:05 +0200 | From | Andi Kleen <> | Subject | Re: [PATCH 8/5] llist: Remove cpu_relax() usage in cmpxchg loops |
| |
On Mon, Sep 12, 2011 at 04:05:58PM +0200, Peter Zijlstra wrote: > Subject: llist: Remove cpu_relax() usage in cmpxchg loops > From: Peter Zijlstra <a.p.zijlstra@chello.nl> > Date: Mon Sep 12 15:50:49 CEST 2011 > > Initial benchmarks show they're a net loss (2 socket wsm): >
May still save power. however:
> entry = cmpxchg(&head->first, old_entry, new); > if (entry == old_entry) > break; > - cpu_relax();
You need at least a barrier() then, otherwise the compiler could change the memory order in the loop.
-Andi
| |