Bug 141851 - (IT_71108) spin loops on both ia32 and ia32e need cpu_relax
spin loops on both ia32 and ia32e need cpu_relax
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Jan Glauber
Brian Brock
: 156044 (view as bug list)
Depends On:
Blocks: 168429
  Show dependency treegraph
Reported: 2004-12-03 20:10 EST by Fenghua Yu
Modified: 2007-11-30 17:07 EST (History)
8 users (show)

See Also:
Fixed In Version: RHSA-2006-0132
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2006-03-07 13:34:40 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Add cpu_relax in idle spin loop for no-hlt kernel option on ia32 (329 bytes, patch)
2004-12-03 20:26 EST, Fenghua Yu
no flags Details | Diff
1 of 2 patches for adding cpu_relax() in spin loops on i386 and X86_64. (2.91 KB, patch)
2005-10-25 17:26 EDT, Fenghua Yu
no flags Details | Diff

External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2005:808 normal SHIPPED_LIVE Important: kernel security update 2005-10-27 00:00:00 EDT
Red Hat Product Errata RHSA-2006:0132 qe-ready SHIPPED_LIVE Moderate: Updated kernel packages available for Red Hat Enterprise Linux 4 Update 3 2006-03-09 11:31:00 EST

  None (edit)
Description Fenghua Yu 2004-12-03 20:10:47 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):

Additional info:
Comment 1 Fenghua Yu 2004-12-03 20:26:31 EST
Created attachment 107881 [details]
Add cpu_relax in idle spin loop for no-hlt kernel option on ia32
Comment 2 Tim Burke 2005-04-26 18:44:58 EDT
*** Bug 156044 has been marked as a duplicate of this bug. ***
Comment 3 Dave Jones 2005-05-26 20:56:53 EDT

*** This bug has been marked as a duplicate of 141699 ***
Comment 8 Geoff Gustafson 2005-10-25 15:39:21 EDT
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.
Comment 9 Fenghua Yu 2005-10-25 17:26:59 EDT
Created attachment 120388 [details]
1 of 2 patches for adding cpu_relax() in spin loops on i386 and X86_64.
Comment 10 Fenghua Yu 2005-10-25 17:35:25 EDT
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 
whole patch.
Comment 15 Jan Glauber 2005-12-20 11:51:08 EST
please reassign to someone else, this is not s390-related.
Comment 16 Jay Turner 2006-01-03 14:37:16 EST
Please confirm resolution with the 2.6.9-27.EL or later kernel.  Thanks!
Comment 17 Fenghua Yu 2006-01-11 20:36:41 EST
Confirmed: all patches are in 2.6.9-27.EL.
Comment 20 Red Hat Bugzilla 2006-03-07 13:34:40 EST
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.


Note You need to log in before you can comment on or make changes to this bug.