diff options
author | Luck, Tony <tony.luck@intel.com> | 2013-09-03 14:49:49 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-03 15:36:42 -0700 |
commit | d472d9d98b463dd7a04f2bcdeafe4261686ce6ab (patch) | |
tree | 05972418a7e71d3e8d5a9c8c8d5e1dc22f013c5b /lib/lockref.c | |
parent | 2f01ea908bcf838e815c0124b579513dbda3b8c8 (diff) | |
download | lwn-d472d9d98b463dd7a04f2bcdeafe4261686ce6ab.tar.gz lwn-d472d9d98b463dd7a04f2bcdeafe4261686ce6ab.zip |
lockref: Relax in cmpxchg loop
While we are likley to succeed and break out of this loop, it isn't
guaranteed. We should be power and thread friendly if we do have to
go around for a second (or third, or more) attempt.
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib/lockref.c')
-rw-r--r-- | lib/lockref.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/lockref.c b/lib/lockref.c index 7819c2d1d315..9d76f404ce9a 100644 --- a/lib/lockref.c +++ b/lib/lockref.c @@ -19,6 +19,7 @@ if (likely(old.lock_count == prev.lock_count)) { \ SUCCESS; \ } \ + cpu_relax(); \ } \ } while (0) |