Message ID | 20230113184447.1707316-1-mjguzik@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | lockref: stop doing cpu_relax in the cmpxchg loop | expand |
> diff --git a/lib/lockref.c b/lib/lockref.c > index 45e93ece8ba0..2afe4c5d8919 100644 > --- a/lib/lockref.c > +++ b/lib/lockref.c > @@ -23,7 +23,6 @@ > } \ > if (!--retry) \ > break; \ > - cpu_relax(); \ > } \ > } while (0) The computer necrophiliacs at Debian and Gentoo seem determined to keep ia64 alive. So perhaps this should s/cpu_relax/soemt_relax/ where soemt_relax is a no-op everywhere except ia64, which can define it as cpu_relax. The ia64 case is quite painful if one thread on a core is spinning in that loop, while the other thread on the same core is the one that needs to run to update that value so that the cmpxchg can succeed. -Tony
On Fri, Jan 13, 2023 at 3:47 PM Luck, Tony <tony.luck@intel.com> wrote: > > The computer necrophiliacs at Debian and Gentoo seem determined > to keep ia64 alive. > > So perhaps this should s/cpu_relax/soemt_relax/ where soemt_relax > is a no-op everywhere except ia64, which can define it as cpu_relax. Heh. I already took your earlier "$ git rm -r arch/ia64" comment as an ack for not really caring about ia64. I suspect nobody will notice, and if ia64 is the only reason to do this, I really don't think it would be worth it. Linus
diff --git a/lib/lockref.c b/lib/lockref.c index 45e93ece8ba0..2afe4c5d8919 100644 --- a/lib/lockref.c +++ b/lib/lockref.c @@ -23,7 +23,6 @@ } \ if (!--retry) \ break; \ - cpu_relax(); \ } \ } while (0)