Bug 141851 (IT_71108)

Summary: spin loops on both ia32 and ia32e need cpu_relax
Product: Red Hat Enterprise Linux 4 Reporter: Fenghua Yu <fenghua.yu>
Component: kernelAssignee: Jan Glauber <jglauber>
Status: CLOSED ERRATA QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.0CC: asit.k.mallick, davej, dwmw2, jbaron, jturner, rohit.seth, tao, tony.luck
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: RHSA-2006-0132 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-03-07 18:34:40 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 168429    
Attachments:
Description Flags
Add cpu_relax in idle spin loop for no-hlt kernel option on ia32
none
1 of 2 patches for adding cpu_relax() in spin loops on i386 and X86_64. none

Description Fenghua Yu 2004-12-04 01:10:47 UTC
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
http://linux.bkbits.net:8080/linux-2.5/cset@1.2055.22.47?
nav=index.html|ChangeSet@-4w

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-04 01:26:31 UTC
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 22:44:58 UTC
*** Bug 156044 has been marked as a duplicate of this bug. ***

Comment 3 Dave Jones 2005-05-27 00:56:53 UTC

*** This bug has been marked as a duplicate of 141699 ***

Comment 8 Geoff Gustafson 2005-10-25 19:39:21 UTC
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 21:26:59 UTC
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 21:35:25 UTC
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 16:51:08 UTC
please reassign to someone else, this is not s390-related.

Comment 16 Jay Turner 2006-01-03 19:37:16 UTC
Please confirm resolution with the 2.6.9-27.EL or later kernel.  Thanks!

Comment 17 Fenghua Yu 2006-01-12 01:36:41 UTC
Confirmed: all patches are in 2.6.9-27.EL.

Comment 20 Red Hat Bugzilla 2006-03-07 18:34:40 UTC
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.

http://rhn.redhat.com/errata/RHSA-2006-0132.html