Bug 141851 (IT_71108) - spin loops on both ia32 and ia32e need cpu_relax
Summary: spin loops on both ia32 and ia32e need cpu_relax
Keywords:
Status: CLOSED ERRATA
Alias: IT_71108
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel
Version: 4.0
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Jan Glauber
QA Contact: Brian Brock
URL:
Whiteboard:
: 156044 (view as bug list)
Depends On:
Blocks: 168429
TreeView+ depends on / blocked
 
Reported: 2004-12-04 01:10 UTC by Fenghua Yu
Modified: 2007-11-30 22:07 UTC (History)
8 users (show)

Fixed In Version: RHSA-2006-0132
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-03-07 18:34:40 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Add cpu_relax in idle spin loop for no-hlt kernel option on ia32 (329 bytes, patch)
2004-12-04 01:26 UTC, 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 21:26 UTC, Fenghua Yu
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2005:808 0 normal SHIPPED_LIVE Important: kernel security update 2005-10-27 04:00:00 UTC
Red Hat Product Errata RHSA-2006:0132 0 qe-ready SHIPPED_LIVE Moderate: Updated kernel packages available for Red Hat Enterprise Linux 4 Update 3 2006-03-09 16:31:00 UTC

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



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