2009-06-14 19:05:56

by Simon Holm Thøgersen

[permalink] [raw]
Subject: apic: native_apic_write_dummy warning

Hi Cyrill

I guess you want to know about these warnings, so here you go

WARNING: at arch/x86/kernel/apic/apic.c:249 native_apic_write_dummy+0x32/0x3e()
Hardware name:
Modules linked in:
Pid: 0, comm: swapper Not tainted 2.6.30-debug-03392-g44b7532 #17
Call Trace:
[<c0126bed>] warn_slowpath_common+0x65/0x95
[ 0.006956] [<c0126c2f>] warn_slowpath_null+0x12/0x15
[ 0.007031] [<c0112269>] native_apic_write_dummy+0x32/0x3e
[ 0.007109] [<c010e027>] intel_init_thermal+0xd3/0x178
[ 0.007185] [<c01168ce>] ? native_read_msr_safe+0x9/0x16
[ 0.007263] [<c0194197>] ? __kmalloc+0x117/0x123
[ 0.007338] [<c010deb2>] mce_intel_feature_init+0x10/0x50
[ 0.007416] [<c05ee0a4>] mcheck_init+0x1d5/0x263
[ 0.007492] [<c05eda0a>] identify_cpu+0x369/0x378
[ 0.007569] [<c03432ac>] ? _spin_unlock+0x3d/0x49
[ 0.007644] [<c01cc5ff>] ? proc_register+0x150/0x161
[ 0.007721] [<c05d2a15>] identify_boot_cpu+0xd/0x23
[ 0.007796] [<c05d2a67>] check_bugs+0xb/0xf1
[ 0.007872] [<c05cc966>] start_kernel+0x293/0x2a7
[ 0.008011] [<c05cc30b>] i386_start_kernel+0x65/0x6a


Simon Holm Thøgersen


Attachments:
apic-oops (25.32 kB)
config-apic-oops (57.65 kB)
Download all attachments

2009-06-14 19:22:34

by Cyrill Gorcunov

[permalink] [raw]
Subject: Re: apic: native_apic_write_dummy warning

[Simon Holm Th?gersen - Sun, Jun 14, 2009 at 09:05:50PM +0200]
| Hi Cyrill
|
| I guess you want to know about these warnings, so here you go
|
| WARNING: at arch/x86/kernel/apic/apic.c:249 native_apic_write_dummy+0x32/0x3e()
| Hardware name:
| Modules linked in:
| Pid: 0, comm: swapper Not tainted 2.6.30-debug-03392-g44b7532 #17
| Call Trace:
| [<c0126bed>] warn_slowpath_common+0x65/0x95
| [ 0.006956] [<c0126c2f>] warn_slowpath_null+0x12/0x15
| [ 0.007031] [<c0112269>] native_apic_write_dummy+0x32/0x3e
| [ 0.007109] [<c010e027>] intel_init_thermal+0xd3/0x178
| [ 0.007185] [<c01168ce>] ? native_read_msr_safe+0x9/0x16
| [ 0.007263] [<c0194197>] ? __kmalloc+0x117/0x123
| [ 0.007338] [<c010deb2>] mce_intel_feature_init+0x10/0x50
| [ 0.007416] [<c05ee0a4>] mcheck_init+0x1d5/0x263
| [ 0.007492] [<c05eda0a>] identify_cpu+0x369/0x378
| [ 0.007569] [<c03432ac>] ? _spin_unlock+0x3d/0x49
| [ 0.007644] [<c01cc5ff>] ? proc_register+0x150/0x161
| [ 0.007721] [<c05d2a15>] identify_boot_cpu+0xd/0x23
| [ 0.007796] [<c05d2a67>] check_bugs+0xb/0xf1
| [ 0.007872] [<c05cc966>] start_kernel+0x293/0x2a7
| [ 0.008011] [<c05cc30b>] i386_start_kernel+0x65/0x6a
|
|
| Simon Holm Th?gersen

Hi Simon, thanks a lot for report! Will take a look.

-- Cyrill

2009-06-14 19:40:26

by Cyrill Gorcunov

[permalink] [raw]
Subject: Re: apic: native_apic_write_dummy warning

[Cyrill Gorcunov - Sun, Jun 14, 2009 at 11:22:20PM +0400]
| [Simon Holm Th?gersen - Sun, Jun 14, 2009 at 09:05:50PM +0200]
| | Hi Cyrill
| |
| | I guess you want to know about these warnings, so here you go
| |
| | WARNING: at arch/x86/kernel/apic/apic.c:249 native_apic_write_dummy+0x32/0x3e()
| | Hardware name:
| | Modules linked in:
| | Pid: 0, comm: swapper Not tainted 2.6.30-debug-03392-g44b7532 #17
| | Call Trace:
| | [<c0126bed>] warn_slowpath_common+0x65/0x95
| | [ 0.006956] [<c0126c2f>] warn_slowpath_null+0x12/0x15
| | [ 0.007031] [<c0112269>] native_apic_write_dummy+0x32/0x3e
| | [ 0.007109] [<c010e027>] intel_init_thermal+0xd3/0x178
| | [ 0.007185] [<c01168ce>] ? native_read_msr_safe+0x9/0x16
| | [ 0.007263] [<c0194197>] ? __kmalloc+0x117/0x123
| | [ 0.007338] [<c010deb2>] mce_intel_feature_init+0x10/0x50
| | [ 0.007416] [<c05ee0a4>] mcheck_init+0x1d5/0x263
| | [ 0.007492] [<c05eda0a>] identify_cpu+0x369/0x378
| | [ 0.007569] [<c03432ac>] ? _spin_unlock+0x3d/0x49
| | [ 0.007644] [<c01cc5ff>] ? proc_register+0x150/0x161
| | [ 0.007721] [<c05d2a15>] identify_boot_cpu+0xd/0x23
| | [ 0.007796] [<c05d2a67>] check_bugs+0xb/0xf1
| | [ 0.007872] [<c05cc966>] start_kernel+0x293/0x2a7
| | [ 0.008011] [<c05cc30b>] i386_start_kernel+0x65/0x6a
| |
| |
| | Simon Holm Th?gersen
|
| Hi Simon, thanks a lot for report! Will take a look.
|
| -- Cyrill

Neither thermal interrupts nor mce will be functional if apic
is not properly set up (even having kernel compiled that way
it support both). So you may try to pass "lapic" boot option
and check if we're lucky in attempt to enable apic via force
push. Anyway this warn show that the code is to be fixed
(and native_apic_write_dummy done its work great catching
useless apic->write operation). I'll handle it but a bit later.

Andi CC'ed since he is involved in MCE handling just for the
record.

-- Cyrill

2009-06-14 20:13:59

by Cyrill Gorcunov

[permalink] [raw]
Subject: Re: apic: native_apic_write_dummy warning

[Cyrill Gorcunov - Sun, Jun 14, 2009 at 11:40:17PM +0400]
...
| Neither thermal interrupts nor mce will be functional if apic
| is not properly set up (even having kernel compiled that way
| it support both). So you may try to pass "lapic" boot option
| and check if we're lucky in attempt to enable apic via force
| push. Anyway this warn show that the code is to be fixed
| (and native_apic_write_dummy done its work great catching
| useless apic->write operation). I'll handle it but a bit later.
|
| Andi CC'ed since he is involved in MCE handling just for the
| record.
|
| -- Cyrill

Simon here is a patch I would appreciate if you test.

-- Cyrill

---
[PATCH -tip] x86: mce intel -- don't touch THERMAL_APIC_VECTOR if no active APIC

If APIC was disabled for some reason and not even mapped
we should not try to enable thermal interrupts at all.

Reported-by: Simon Holm Th?gersen <[email protected]>
Signed-off-by: Cyrill Gorcunov <[email protected]>
---
arch/x86/kernel/cpu/mcheck/mce_intel.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

Index: linux-2.6.git/arch/x86/kernel/cpu/mcheck/mce_intel.c
=====================================================================
--- linux-2.6.git.orig/arch/x86/kernel/cpu/mcheck/mce_intel.c
+++ linux-2.6.git/arch/x86/kernel/cpu/mcheck/mce_intel.c
@@ -21,9 +21,15 @@ void intel_init_thermal(struct cpuinfo_x
int tm2 = 0;
u32 l, h;

- /* Thermal monitoring depends on ACPI and clock modulation*/
- if (!cpu_has(c, X86_FEATURE_ACPI) || !cpu_has(c, X86_FEATURE_ACC))
+ /*
+ * Thermal monitoring depends on ACPI, clock modulation
+ * and APIC as well
+ */
+ if (!cpu_has(c, X86_FEATURE_ACPI) || !cpu_has(c, X86_FEATURE_ACC) ||
+ !cpu_has(c, X86_FEATURE_APIC)) {
+ pr_debug("Thermal monitoring disabled\n");
return;
+ }

/*
* First check if its enabled already, in which case there might

2009-06-14 21:49:21

by Simon Holm Thøgersen

[permalink] [raw]
Subject: Re: apic: native_apic_write_dummy warning

man, 15 06 2009 kl. 00:06 +0400, skrev Cyrill Gorcunov:
> [Cyrill Gorcunov - Sun, Jun 14, 2009 at 11:40:17PM +0400]
> ...
> | Neither thermal interrupts nor mce will be functional if apic
> | is not properly set up (even having kernel compiled that way
> | it support both). So you may try to pass "lapic" boot option
> | and check if we're lucky in attempt to enable apic via force
> | push. Anyway this warn show that the code is to be fixed
> | (and native_apic_write_dummy done its work great catching
> | useless apic->write operation). I'll handle it but a bit later.
> |
> | Andi CC'ed since he is involved in MCE handling just for the
> | record.
> |
> | -- Cyrill
>
> Simon here is a patch I would appreciate if you test.

That was quick work :) No warning with the patch (or lapic).

> ---
> [PATCH -tip] x86: mce intel -- don't touch THERMAL_APIC_VECTOR if no active APIC
>
> If APIC was disabled for some reason and not even mapped
> we should not try to enable thermal interrupts at all.
>
> Reported-by: Simon Holm Thøgersen <[email protected]>

Tested-by: Simon Holm Thøgersen <[email protected]>

> Signed-off-by: Cyrill Gorcunov <[email protected]>
> ---
> arch/x86/kernel/cpu/mcheck/mce_intel.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> Index: linux-2.6.git/arch/x86/kernel/cpu/mcheck/mce_intel.c
> =====================================================================
> --- linux-2.6.git.orig/arch/x86/kernel/cpu/mcheck/mce_intel.c
> +++ linux-2.6.git/arch/x86/kernel/cpu/mcheck/mce_intel.c
> @@ -21,9 +21,15 @@ void intel_init_thermal(struct cpuinfo_x
> int tm2 = 0;
> u32 l, h;
>
> - /* Thermal monitoring depends on ACPI and clock modulation*/
> - if (!cpu_has(c, X86_FEATURE_ACPI) || !cpu_has(c, X86_FEATURE_ACC))
> + /*
> + * Thermal monitoring depends on ACPI, clock modulation
> + * and APIC as well
> + */
> + if (!cpu_has(c, X86_FEATURE_ACPI) || !cpu_has(c, X86_FEATURE_ACC) ||
> + !cpu_has(c, X86_FEATURE_APIC)) {
> + pr_debug("Thermal monitoring disabled\n");
> return;
> + }
>
> /*
> * First check if its enabled already, in which case there might
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/