Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 273831 Details for
Bug 357391
RHEL5: Race in smp-linux kernel (nmi.c)
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
RHEL5 fix for this issue
357391.patch (text/plain), 2.97 KB, created by
Prarit Bhargava
on 2007-11-30 14:40:07 UTC
(
hide
)
Description:
RHEL5 fix for this issue
Filename:
MIME Type:
Creator:
Prarit Bhargava
Created:
2007-11-30 14:40:07 UTC
Size:
2.97 KB
patch
obsolete
>diff -urNp -X linux-2.6.18.ia64/Documentation/dontdiff linux-2.6.18.ia64.orig/arch/i386/kernel/nmi.c linux-2.6.18.ia64/arch/i386/kernel/nmi.c >--- linux-2.6.18.ia64.orig/arch/i386/kernel/nmi.c 2007-11-30 07:40:08.000000000 -0500 >+++ linux-2.6.18.ia64/arch/i386/kernel/nmi.c 2007-11-30 08:34:14.000000000 -0500 >@@ -98,6 +98,8 @@ int nmi_active; > #define ARCH_PERFMON_NMI_EVENT_SEL ARCH_PERFMON_UNHALTED_CORE_CYCLES_SEL > #define ARCH_PERFMON_NMI_EVENT_UMASK ARCH_PERFMON_UNHALTED_CORE_CYCLES_UMASK > >+static int endflag __initdata = 0; >+ > #ifdef CONFIG_SMP > /* The performance counters used by NMI_LOCAL_APIC don't trigger when > * the CPU is idle. To make sure the NMI watchdog really ticks on all >@@ -105,7 +107,6 @@ int nmi_active; > */ > static __init void nmi_cpu_busy(void *data) > { >- volatile int *endflag = data; > local_irq_enable_in_hardirq(); > /* Intentionally don't use cpu_relax here. This is > to make sure that the performance counter really ticks, >@@ -113,8 +114,8 @@ static __init void nmi_cpu_busy(void *da > pause instruction. On a real HT machine this is fine because > all other CPUs are busy with "useless" delay loops and don't > care if they get somewhat less cycles. */ >- while (*endflag == 0) >- barrier(); >+ while (endflag == 0) >+ mb(); > } > #endif > >@@ -142,7 +143,6 @@ static unsigned int adjust_for_32bit_ctr > > static int __init check_nmi_watchdog(void) > { >- volatile int endflag = 0; > unsigned int *prev_nmi_count; > int cpu; > >diff -urNp -X linux-2.6.18.ia64/Documentation/dontdiff linux-2.6.18.ia64.orig/arch/x86_64/kernel/nmi.c linux-2.6.18.ia64/arch/x86_64/kernel/nmi.c >--- linux-2.6.18.ia64.orig/arch/x86_64/kernel/nmi.c 2007-11-30 07:40:08.000000000 -0500 >+++ linux-2.6.18.ia64/arch/x86_64/kernel/nmi.c 2007-11-30 08:35:45.000000000 -0500 >@@ -121,6 +121,8 @@ void __cpuinit nmi_watchdog_default(void > nmi_watchdog = NMI_IO_APIC; > } > >+static int endflag __initdata = 0; >+ > #ifdef CONFIG_SMP > /* The performance counters used by NMI_LOCAL_APIC don't trigger when > * the CPU is idle. To make sure the NMI watchdog really ticks on all >@@ -128,7 +130,6 @@ void __cpuinit nmi_watchdog_default(void > */ > static __init void nmi_cpu_busy(void *data) > { >- volatile int *endflag = data; > local_irq_enable_in_hardirq(); > /* Intentionally don't use cpu_relax here. This is > to make sure that the performance counter really ticks, >@@ -136,8 +137,8 @@ static __init void nmi_cpu_busy(void *da > pause instruction. On a real HT machine this is fine because > all other CPUs are busy with "useless" delay loops and don't > care if they get somewhat less cycles. */ >- while (*endflag == 0) >- barrier(); >+ while (endflag == 0) >+ mb(); > } > #endif > >@@ -160,7 +161,6 @@ static unsigned int adjust_for_32bit_ctr > > int __init check_nmi_watchdog (void) > { >- volatile int endflag = 0; > int *counts; > int cpu; > >@@ -191,6 +191,7 @@ int __init check_nmi_watchdog (void) > lapic_nmi_owner &= ~LAPIC_NMI_WATCHDOG; > nmi_perfctr_msr = 0; > kfree(counts); >+ endflag = 1; > return -1; > } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 357391
: 273831