Red Hat Bugzilla – Bug 141851
spin loops on both ia32 and ia32e need cpu_relax
Last modified: 2007-11-30 17:07:15 EST
From Bugzilla Helper:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; YPC
3.0.1; .NET CLR 1.1.4322)
Description of problem:
A few spin loops on both ia32 and ia32e does not have cpu_relax. The
patches here fix the issue. The patches also cleans some barrier() in
spin loops after cpu_relax.
The first patch has been accepted in Linus's bk tree
The second patch has been sent to lkml. I attaced it here in this bug.
Version-Release number of selected component (if applicable):
Created attachment 107881 [details]
Add cpu_relax in idle spin loop for no-hlt kernel option on ia32
*** Bug 156044 has been marked as a duplicate of this bug. ***
*** This bug has been marked as a duplicate of 141699 ***
This is not a dup of 141699 because that is ia64 and this is i386/x86_64. This
is an important distinction because the kabi argument is valid on i386/x86_64
here, but not on ia64 where the implementation of udelay is different.
Created attachment 120388 [details]
1 of 2 patches for adding cpu_relax() in spin loops on i386 and X86_64.
Geoff is right in Comment #8. This is not dup of 141699.
Since the patch link in the original comment is not available, I attache the
patch here in Comment #9. So the whole patch is the patch in Comment #1 plus
the patch in Comment #9. The whole patch has been in base kernels already.
BTW, there is no kABI issue here because there is no udelay() changes in the
please reassign to someone else, this is not s390-related.
Please confirm resolution with the 2.6.9-27.EL or later kernel. Thanks!
Confirmed: all patches are in 2.6.9-27.EL.
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on the solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.