* Re: IO-APIC on nforce2 [PATCH]
2004-04-13 7:03 ` Ross Dickson
@ 2004-04-14 1:02 ` Len Brown
2004-04-14 5:02 ` Ross Dickson
2004-04-15 15:21 ` Zwane Mwaikambo
0 siblings, 2 replies; 27+ messages in thread
From: Len Brown @ 2004-04-14 1:02 UTC (permalink / raw)
To: ross; +Cc: christian.kroener, linux-kernel, Maciej W. Rozycki
[-- Attachment #1: Type: text/plain, Size: 2294 bytes --]
Re: IRQ0 XT-PIC timer issue
Since the hardware is connected to APIC pin0, it is a BIOS bug
that an ACPI interrupt source override from pin2 to IRQ0 exists.
With this simple 2.6.5 patch you can specify "acpi_skip_timer_override"
to ignore that bogus BIOS directive. The result is with your
ACPI-enabled APIC-enabled kernel, you'll get IRQ0 IO-APIC-edge timer.
Probably there is a more clever way to trigger this workaround
automatcially instead of via boot parameter.
cheers,
-Len
===== Documentation/kernel-parameters.txt 1.44 vs edited =====
--- 1.44/Documentation/kernel-parameters.txt Mon Mar 22 16:03:22 2004
+++ edited/Documentation/kernel-parameters.txt Tue Apr 13 17:47:11 2004
@@ -122,6 +122,10 @@
acpi_serialize [HW,ACPI] force serialization of AML methods
+ acpi_skip_timer_override [HW,ACPI]]
+ Recognize IRQ0/pin2 Interrupt Source Override
+ and ignore it -- for broken nForce2 BIOS.
+
ad1816= [HW,OSS]
Format: <io>,<irq>,<dma>,<dma2>
See also Documentation/sound/oss/AD1816.
===== arch/i386/kernel/setup.c 1.115 vs edited =====
--- 1.115/arch/i386/kernel/setup.c Fri Apr 2 07:21:43 2004
+++ edited/arch/i386/kernel/setup.c Tue Apr 13 17:41:31 2004
@@ -614,6 +614,12 @@
else if (!memcmp(from, "acpi_sci=low", 12))
acpi_sci_flags.polarity = 3;
+ else if (!memcmp(from, "acpi_skip_timer_override", 24)) {
+ extern int acpi_skip_timer_override;
+
+ acpi_skip_timer_override = 1;
+ }
+
#ifdef CONFIG_X86_LOCAL_APIC
/* disable IO-APIC */
else if (!memcmp(from, "noapic", 6))
===== arch/i386/kernel/acpi/boot.c 1.57 vs edited =====
--- 1.57/arch/i386/kernel/acpi/boot.c Tue Mar 30 17:05:19 2004
+++ edited/arch/i386/kernel/acpi/boot.c Tue Apr 13 17:50:14 2004
@@ -62,6 +62,7 @@
acpi_interrupt_flags acpi_sci_flags __initdata;
int acpi_sci_override_gsi __initdata;
+int acpi_skip_timer_override __initdata;
#ifdef CONFIG_X86_LOCAL_APIC
static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
@@ -327,6 +328,12 @@
acpi_sci_ioapic_setup(intsrc->global_irq,
intsrc->flags.polarity, intsrc->flags.trigger);
return 0;
+ }
+
+ if (acpi_skip_timer_override &&
+ intsrc->bus_irq == 0 && intsrc->global_irq == 2) {
+ printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n");
+ return 0;
}
mp_override_legacy_irq (
[-- Attachment #2: wip.patch --]
[-- Type: text/plain, Size: 1806 bytes --]
===== Documentation/kernel-parameters.txt 1.44 vs edited =====
--- 1.44/Documentation/kernel-parameters.txt Mon Mar 22 16:03:22 2004
+++ edited/Documentation/kernel-parameters.txt Tue Apr 13 17:47:11 2004
@@ -122,6 +122,10 @@
acpi_serialize [HW,ACPI] force serialization of AML methods
+ acpi_skip_timer_override [HW,ACPI]]
+ Recognize IRQ0/pin2 Interrupt Source Override
+ and ignore it -- for broken nForce2 BIOS.
+
ad1816= [HW,OSS]
Format: <io>,<irq>,<dma>,<dma2>
See also Documentation/sound/oss/AD1816.
===== arch/i386/kernel/setup.c 1.115 vs edited =====
--- 1.115/arch/i386/kernel/setup.c Fri Apr 2 07:21:43 2004
+++ edited/arch/i386/kernel/setup.c Tue Apr 13 17:41:31 2004
@@ -614,6 +614,12 @@
else if (!memcmp(from, "acpi_sci=low", 12))
acpi_sci_flags.polarity = 3;
+ else if (!memcmp(from, "acpi_skip_timer_override", 24)) {
+ extern int acpi_skip_timer_override;
+
+ acpi_skip_timer_override = 1;
+ }
+
#ifdef CONFIG_X86_LOCAL_APIC
/* disable IO-APIC */
else if (!memcmp(from, "noapic", 6))
===== arch/i386/kernel/acpi/boot.c 1.57 vs edited =====
--- 1.57/arch/i386/kernel/acpi/boot.c Tue Mar 30 17:05:19 2004
+++ edited/arch/i386/kernel/acpi/boot.c Tue Apr 13 17:50:14 2004
@@ -62,6 +62,7 @@
acpi_interrupt_flags acpi_sci_flags __initdata;
int acpi_sci_override_gsi __initdata;
+int acpi_skip_timer_override __initdata;
#ifdef CONFIG_X86_LOCAL_APIC
static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
@@ -327,6 +328,12 @@
acpi_sci_ioapic_setup(intsrc->global_irq,
intsrc->flags.polarity, intsrc->flags.trigger);
return 0;
+ }
+
+ if (acpi_skip_timer_override &&
+ intsrc->bus_irq == 0 && intsrc->global_irq == 2) {
+ printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n");
+ return 0;
}
mp_override_legacy_irq (
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-14 1:02 ` IO-APIC on nforce2 [PATCH] Len Brown
@ 2004-04-14 5:02 ` Ross Dickson
2004-04-14 6:30 ` Jamie Lokier
` (2 more replies)
2004-04-15 15:21 ` Zwane Mwaikambo
1 sibling, 3 replies; 27+ messages in thread
From: Ross Dickson @ 2004-04-14 5:02 UTC (permalink / raw)
To: Len Brown; +Cc: christian.kroener, linux-kernel, Maciej W. Rozycki
On Wednesday 14 April 2004 11:02, Len Brown wrote:
> Re: IRQ0 XT-PIC timer issue
>
> Since the hardware is connected to APIC pin0, it is a BIOS bug
> that an ACPI interrupt source override from pin2 to IRQ0 exists.
>
> With this simple 2.6.5 patch you can specify "acpi_skip_timer_override"
> to ignore that bogus BIOS directive. The result is with your
> ACPI-enabled APIC-enabled kernel, you'll get IRQ0 IO-APIC-edge timer.
>
> Probably there is a more clever way to trigger this workaround
> automatcially instead of via boot parameter.
>
> cheers,
> -Len
Many thanks Len,
I cannot try it just yet (rebuilding car engine,-greasy mess
- hopefully get to it tonight).
Just would like to add that if we cannot get Maciej's 8259 ack patch
back into the distro then we need an if statement in the check_timer()
to turn off timer_ack for nforce2 or Christian might get his hi-load back
and certainly nmi_debug=1 won't work.
e.g. for 2.4.26-rc2 io_apic.c line 1613 or 2.6.5 line 2180
if (pin1 != -1) {
/*
* Ok, does IRQ0 through the IOAPIC work?
*/
+ if(acpi_skip_timer_override)
+ timer_ack=0;
unmask_IO_APIC_irq(0);
I might also grab the pci quirk source from the old nforce2 disconnect bit
patch and try it as a means of detection for automatic trigger. i.e. instead
of writing the pci config bit, set acpi_skip_timer_override instead - but then
if someone gets clock skew we would need the kern arg to turn it off -
unless the potential for clock skew is fixed.
The clock skew is an interesting one, I think the clock uses tsc if available
to interpolate between timer ints and if so should it not also be used to
validate the timer ints in case of noise? Apparently the clock speeds up not
slows down in those cases?
Regards
Ross.
>
> ===== Documentation/kernel-parameters.txt 1.44 vs edited =====
> --- 1.44/Documentation/kernel-parameters.txt Mon Mar 22 16:03:22 2004
> +++ edited/Documentation/kernel-parameters.txt Tue Apr 13 17:47:11 2004
> @@ -122,6 +122,10 @@
>
> acpi_serialize [HW,ACPI] force serialization of AML methods
>
> + acpi_skip_timer_override [HW,ACPI]]
> + Recognize IRQ0/pin2 Interrupt Source Override
> + and ignore it -- for broken nForce2 BIOS.
> +
> ad1816= [HW,OSS]
> Format: <io>,<irq>,<dma>,<dma2>
> See also Documentation/sound/oss/AD1816.
> ===== arch/i386/kernel/setup.c 1.115 vs edited =====
> --- 1.115/arch/i386/kernel/setup.c Fri Apr 2 07:21:43 2004
> +++ edited/arch/i386/kernel/setup.c Tue Apr 13 17:41:31 2004
> @@ -614,6 +614,12 @@
> else if (!memcmp(from, "acpi_sci=low", 12))
> acpi_sci_flags.polarity = 3;
>
> + else if (!memcmp(from, "acpi_skip_timer_override", 24)) {
> + extern int acpi_skip_timer_override;
> +
> + acpi_skip_timer_override = 1;
> + }
> +
> #ifdef CONFIG_X86_LOCAL_APIC
> /* disable IO-APIC */
> else if (!memcmp(from, "noapic", 6))
> ===== arch/i386/kernel/acpi/boot.c 1.57 vs edited =====
> --- 1.57/arch/i386/kernel/acpi/boot.c Tue Mar 30 17:05:19 2004
> +++ edited/arch/i386/kernel/acpi/boot.c Tue Apr 13 17:50:14 2004
> @@ -62,6 +62,7 @@
>
> acpi_interrupt_flags acpi_sci_flags __initdata;
> int acpi_sci_override_gsi __initdata;
> +int acpi_skip_timer_override __initdata;
>
> #ifdef CONFIG_X86_LOCAL_APIC
> static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
> @@ -327,6 +328,12 @@
> acpi_sci_ioapic_setup(intsrc->global_irq,
> intsrc->flags.polarity, intsrc->flags.trigger);
> return 0;
> + }
> +
> + if (acpi_skip_timer_override &&
> + intsrc->bus_irq == 0 && intsrc->global_irq == 2) {
> + printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n");
> + return 0;
> }
>
> mp_override_legacy_irq (
>
>
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-14 5:02 ` Ross Dickson
@ 2004-04-14 6:30 ` Jamie Lokier
2004-04-14 10:37 ` Maciej W. Rozycki
2004-04-14 19:57 ` Christian Kröner
2 siblings, 0 replies; 27+ messages in thread
From: Jamie Lokier @ 2004-04-14 6:30 UTC (permalink / raw)
To: Ross Dickson
Cc: Len Brown, christian.kroener, linux-kernel, Maciej W. Rozycki
Ross Dickson wrote:
> The clock skew is an interesting one, I think the clock uses tsc if available
> to interpolate between timer ints and if so should it not also be used to
> validate the timer ints in case of noise? Apparently the clock speeds up not
> slows down in those cases?
If the clock is speeding up due to spurious extra timer interrupts,
how about reading the timer chip to validate the interrupts? Doesn't
sound unreasonable to me :)
The problem with using the tsc is that the tsc frequency isn't
constant on some systems. If it slows down, it would make valid timer
interrupts appear to be spurious.
-- Jamie
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-14 5:02 ` Ross Dickson
2004-04-14 6:30 ` Jamie Lokier
@ 2004-04-14 10:37 ` Maciej W. Rozycki
2004-04-15 19:28 ` Len Brown
2004-04-14 19:57 ` Christian Kröner
2 siblings, 1 reply; 27+ messages in thread
From: Maciej W. Rozycki @ 2004-04-14 10:37 UTC (permalink / raw)
To: Ross Dickson; +Cc: Len Brown, christian.kroener, linux-kernel
On Wed, 14 Apr 2004, Ross Dickson wrote:
> e.g. for 2.4.26-rc2 io_apic.c line 1613 or 2.6.5 line 2180
> if (pin1 != -1) {
> /*
> * Ok, does IRQ0 through the IOAPIC work?
> */
> + if(acpi_skip_timer_override)
> + timer_ack=0;
> unmask_IO_APIC_irq(0);
>
> I might also grab the pci quirk source from the old nforce2 disconnect bit
> patch and try it as a means of detection for automatic trigger. i.e. instead
> of writing the pci config bit, set acpi_skip_timer_override instead - but then
> if someone gets clock skew we would need the kern arg to turn it off -
> unless the potential for clock skew is fixed.
Well, the question is whether the timer->INTIN0 routing is hardwired
inside the nforce2 chipset or is it external and thus board-dependent.
Any way to get this clarified by the chipset's manufacturer?
> The clock skew is an interesting one, I think the clock uses tsc if available
> to interpolate between timer ints and if so should it not also be used to
> validate the timer ints in case of noise? Apparently the clock speeds up not
> slows down in those cases?
With real hardware perhaps it can be debugged. The interaction between
the 8254, the 8259As and the APICs seems interesting in the chipset.
Perhaps the override to INTIN2 is to tell the timer is really unavailable
directly? I can't see a way to have an ACPI override that specifies an
ISA interrupt is not connected to the I/O APIC (unlike with the MPS).
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-14 5:02 ` Ross Dickson
2004-04-14 6:30 ` Jamie Lokier
2004-04-14 10:37 ` Maciej W. Rozycki
@ 2004-04-14 19:57 ` Christian Kröner
2004-04-15 0:17 ` Len Brown
2 siblings, 1 reply; 27+ messages in thread
From: Christian Kröner @ 2004-04-14 19:57 UTC (permalink / raw)
To: linux-kernel; +Cc: Len Brown, Maciej W. Rozycki, ross
> Just would like to add that if we cannot get Maciej's 8259 ack patch
> back into the distro then we need an if statement in the check_timer()
> to turn off timer_ack for nforce2 or Christian might get his hi-load back
> and certainly nmi_debug=1 won't work.
>
> e.g. for 2.4.26-rc2 io_apic.c line 1613 or 2.6.5 line 2180
> if (pin1 != -1) {
> /*
> * Ok, does IRQ0 through the IOAPIC work?
> */
> + if(acpi_skip_timer_override)
> + timer_ack=0;
> unmask_IO_APIC_irq(0);
>
Well it seems that if at least on -mm this isn't necessary.
Len, I simply applied your patch against 2.6.5-mm5-1 and it just works, great
work! Having finally read http://bugme.osdl.org/show_bug.cgi?id=1203 I must
say that my nforce2-board (MSI K7N2-Delta) never ever hung, wether I had the
wrong timer setup or APIC on/off didn't harm any.
What I get now:
cat /proc/interrupts
CPU0
0: 25978569 IO-APIC-edge timer
1: 2102 IO-APIC-edge i8042
2: 0 XT-PIC cascade
7: 0 IO-APIC-edge parport0
8: 4 IO-APIC-edge rtc
9: 0 IO-APIC-level acpi
12: 147962 IO-APIC-edge i8042
14: 405977 IO-APIC-edge ide0
15: 93 IO-APIC-edge ide1
16: 60192 IO-APIC-level ide2, saa7134[0]
17: 155 IO-APIC-level CMI8738
19: 2209002 IO-APIC-level nvidia
20: 7538158 IO-APIC-level ohci_hcd, eth0
21: 0 IO-APIC-level ehci_hcd
22: 78 IO-APIC-level ohci_hcd
NMI: 0
LOC: 25946237
ERR: 0
MIS: 0
timer setup:
ENABLING IO-APIC IRQs
init IO_APIC IRQs
IO-APIC (apicid-pin) 2-2, 2-16, 2-17, 2-18, 2-19, 2-20, 2-21, 2-22, 2-23 not
connected.
..TIMER: vector=0x31 pin1=0 pin2=-1
Using local APIC timer interrupts.
calibrating APIC timer ...
irq routing:
IO APIC #2......
.... register #00: 02000000
....... : physical APIC id: 02
....... : Delivery Type: 0
....... : LTS : 0
.... register #01: 00170011
....... : max redirection entries: 0017
....... : PRQ implemented: 0
....... : IO APIC version: 0011
.... register #02: 00000000
....... : arbitration: 00
.... IRQ redirection table:
NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:
00 001 01 0 0 0 0 0 1 1 31
01 001 01 0 0 0 0 0 1 1 39
02 000 00 1 0 0 0 0 0 0 00
03 001 01 0 0 0 0 0 1 1 41
04 001 01 0 0 0 0 0 1 1 49
05 001 01 0 0 0 0 0 1 1 51
06 001 01 0 0 0 0 0 1 1 59
07 001 01 0 0 0 0 0 1 1 61
08 001 01 0 0 0 0 0 1 1 69
09 001 01 0 1 0 0 0 1 1 71
0a 001 01 0 0 0 0 0 1 1 79
0b 001 01 0 0 0 0 0 1 1 81
0c 001 01 0 0 0 0 0 1 1 89
0d 001 01 0 0 0 0 0 1 1 91
0e 001 01 0 0 0 0 0 1 1 99
0f 001 01 0 0 0 0 0 1 1 A1
10 001 01 1 1 0 0 0 1 1 D1
11 001 01 1 1 0 0 0 1 1 D9
12 001 01 1 1 0 0 0 1 1 E1
13 001 01 1 1 0 0 0 1 1 C9
14 001 01 1 1 0 0 0 1 1 B1
15 001 01 1 1 0 0 0 1 1 C1
16 001 01 1 1 0 0 0 1 1 B9
17 001 01 1 1 0 0 0 1 1 A9
IRQ to pin mappings:
IRQ0 -> 0:0
IRQ1 -> 0:1
IRQ3 -> 0:3
IRQ4 -> 0:4
IRQ5 -> 0:5
IRQ6 -> 0:6
IRQ7 -> 0:7
IRQ8 -> 0:8
IRQ9 -> 0:9
IRQ10 -> 0:10
IRQ11 -> 0:11
IRQ12 -> 0:12
IRQ13 -> 0:13
IRQ14 -> 0:14
IRQ15 -> 0:15
IRQ16 -> 0:16
IRQ17 -> 0:17
IRQ18 -> 0:18
IRQ19 -> 0:19
IRQ20 -> 0:20
IRQ21 -> 0:21
IRQ22 -> 0:22
IRQ23 -> 0:23
.................................... done.
This is simply great, any uncommon hi-load disappeared.
Will something like this get into mainline soon, maybe with automatic chipset
detection?
Once again, thanks, christian.
P.S.: I will test the patch against mainline 2.6.5 kernel now and post the
results later.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
@ 2004-04-14 21:01 Christian Kröner
2004-04-15 0:35 ` Peter Clifton
2004-04-15 0:41 ` Ross Dickson
0 siblings, 2 replies; 27+ messages in thread
From: Christian Kröner @ 2004-04-14 21:01 UTC (permalink / raw)
To: linux-kernel; +Cc: Len Brown, Maciej W. Rozycki, ross
> Just would like to add that if we cannot get Maciej's 8259 ack patch
> back into the distro then we need an if statement in the check_timer()
> to turn off timer_ack for nforce2 or Christian might get his hi-load back
> and certainly nmi_debug=1 won't work.
>
> e.g. for 2.4.26-rc2 io_apic.c line 1613 or 2.6.5 line 2180
> if (pin1 != -1) {
> /*
> * Ok, does IRQ0 through the IOAPIC work?
> */
> + if(acpi_skip_timer_override)
> + timer_ack=0;
> unmask_IO_APIC_irq(0);
>
Also on mainline 2.6.5 this if-statement doesn't seem to be necessary. Len's
patch worked on this kernel as well, setting the timer interrupt to
IO-APIC-edge and there is no strange hi-load anymore too.
thanks, christian.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-14 19:57 ` Christian Kröner
@ 2004-04-15 0:17 ` Len Brown
2004-04-15 1:48 ` Ross Dickson
0 siblings, 1 reply; 27+ messages in thread
From: Len Brown @ 2004-04-15 0:17 UTC (permalink / raw)
To: Christian Kröner; +Cc: linux-kernel, Maciej W. Rozycki, ross
On Wed, 2004-04-14 at 15:57, Christian Kröner wrote:
> This is simply great, any uncommon hi-load disappeared.
> Will something like this get into mainline soon, maybe with automatic chipset
> detection?
I'm okay putting the bootparam and the workaround into the kernel,
for it is generic and we may find other platforms need it.
But I don't have a clean way to make it automatic.
This is a BIOS bug, so chipset ID will not always work.
We could list the BIOS in dmi_scan(), but I hate doing
that b/c then the vendor releases a new version of their
broken BIOS and the automatic workaround no longer works...
-Len
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-15 0:35 ` Peter Clifton
@ 2004-04-15 0:29 ` Craig Bradney
0 siblings, 0 replies; 27+ messages in thread
From: Craig Bradney @ 2004-04-15 0:29 UTC (permalink / raw)
To: Peter Clifton; +Cc: linux-kernel, Len Brown, Maciej W. Rozycki, ross
[-- Attachment #1: Type: text/plain, Size: 1278 bytes --]
On Thu, 2004-04-15 at 02:35, Peter Clifton wrote:
> Sorry Christian, meant to send to the list rather than just you.
>
> I'm watching this thread with interest, I've got an ASUS A7N8X board,
> and have had annoying lockups with most kernels I've compiled myself
> from 2.4 upwards. Some luck caused me to try turning APIC off, and the
> system hasn't crashed since.
>
> Is there any reason why turning APIC off reduces performance?
>
> I'd be happy to provide another person to test patches (with the proviso
> that if you want detailed debugging information, you'd have to suggest
> how to obtain it, since when it locks up, it tends to lock good!)
>
> I'm currently running 2.6.3-gentoo-r1 (Although I can't see a list of
> what patches they have already applied).
>
> I'd be happy to try a vanilla kernel with whatever patches if that would
> help out solving the problem.
Peter, I have 2.6.3gentoo r1 on my box with a A7N8X Deluxe v2 with Ross
Dicksons 2.6.3 idlec1halt patches and its as stable as a rock. I've left
it on that kernel as there are still many discussions recently posted re
2.6.5. My 3 other PCs are on gentoo dev source 2.6.5 and are solid, but
I've left the Athlon on 2.6.3 due to the fact its working just fine now
Craig
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-14 21:01 IO-APIC on nforce2 [PATCH] Christian Kröner
@ 2004-04-15 0:35 ` Peter Clifton
2004-04-15 0:29 ` Craig Bradney
2004-04-15 0:41 ` Ross Dickson
1 sibling, 1 reply; 27+ messages in thread
From: Peter Clifton @ 2004-04-15 0:35 UTC (permalink / raw)
To: linux-kernel, Len Brown, Maciej W. Rozycki, ross
Sorry Christian, meant to send to the list rather than just you.
I'm watching this thread with interest, I've got an ASUS A7N8X board,
and have had annoying lockups with most kernels I've compiled myself
from 2.4 upwards. Some luck caused me to try turning APIC off, and the
system hasn't crashed since.
Is there any reason why turning APIC off reduces performance?
I'd be happy to provide another person to test patches (with the proviso
that if you want detailed debugging information, you'd have to suggest
how to obtain it, since when it locks up, it tends to lock good!)
I'm currently running 2.6.3-gentoo-r1 (Although I can't see a list of
what patches they have already applied).
I'd be happy to try a vanilla kernel with whatever patches if that would
help out solving the problem.
Regards
Peter Clifton
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-14 21:01 IO-APIC on nforce2 [PATCH] Christian Kröner
2004-04-15 0:35 ` Peter Clifton
@ 2004-04-15 0:41 ` Ross Dickson
1 sibling, 0 replies; 27+ messages in thread
From: Ross Dickson @ 2004-04-15 0:41 UTC (permalink / raw)
To: Christian Kröner, linux-kernel; +Cc: Len Brown, Maciej W. Rozycki
On Thursday 15 April 2004 07:01, Christian Kröner wrote:
> > Just would like to add that if we cannot get Maciej's 8259 ack patch
> > back into the distro then we need an if statement in the check_timer()
> > to turn off timer_ack for nforce2 or Christian might get his hi-load back
> > and certainly nmi_debug=1 won't work.
> >
> > e.g. for 2.4.26-rc2 io_apic.c line 1613 or 2.6.5 line 2180
> > if (pin1 != -1) {
> > /*
> > * Ok, does IRQ0 through the IOAPIC work?
> > */
> > + if(acpi_skip_timer_override)
> > + timer_ack=0;
> > unmask_IO_APIC_irq(0);
> >
>
> Also on mainline 2.6.5 this if-statement doesn't seem to be necessary. Len's
> patch worked on this kernel as well, setting the timer interrupt to
> IO-APIC-edge and there is no strange hi-load anymore too.
>
Good that your hi-load is fixed just by routing the timer through io-apic.
Could you try the "nmi_watchdog=1" kernel arg please.
You should get a message in your boot log as to whether it works
also cat /proc/interrupts to see if it stops.
Wouldn't hurt to try "nmi_watchdog=2" either.
I had a situation where "nmi_watchdog=2" tested ok in boot log
but halted after 23 interrupts.
> thanks, christian.
>
>
>
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-15 0:17 ` Len Brown
@ 2004-04-15 1:48 ` Ross Dickson
2004-04-15 17:09 ` Christian Kröner
0 siblings, 1 reply; 27+ messages in thread
From: Ross Dickson @ 2004-04-15 1:48 UTC (permalink / raw)
To: Len Brown, Christian Kröner, linux-nforce-bugs
Cc: linux-kernel, Maciej W. Rozycki
On Thursday 15 April 2004 10:17, Len Brown wrote:
> On Wed, 2004-04-14 at 15:57, Christian Kröner wrote:
>
> > This is simply great, any uncommon hi-load disappeared.
> > Will something like this get into mainline soon, maybe with automatic chipset
> > detection?
>
> I'm okay putting the bootparam and the workaround into the kernel,
> for it is generic and we may find other platforms need it.
Great, it sure is simpler and cleaner than my workaround. Thanks.
>
> But I don't have a clean way to make it automatic.
> This is a BIOS bug, so chipset ID will not always work.
True it is a bios thing but I have yet to see an nforce2 MOBO that is not
routed in this way. I am thinking it is internal to the chipset. I have seen
none route it into io-apic pin2.
> Maciej wrote
> Well, the question is whether the timer->INTIN0 routing is hardwired
> inside the nforce2 chipset or is it external and thus board-dependent.
> Any way to get this clarified by the chipset's manufacturer?
Nvidia is the first Company in my 20+ years of working life to totally not
respond to my attempts to communicate and I have had dealings with
numerous semiconductor firms and agents. I doubt that my email source
would be blocked and I have also tried their form mail. Do real people
work there? Maybe I have to phone or fax them from here in Australia?
-or place an order for 10,000 chips? Maybe we need a worldwide union of
Linux support staff to exhibit collective sales pressure. Enough ranting....
I am also cautioned by Maciej's comments indicating that maybe the
override appears in the nforce2 bios because there is no other way of
saying this is a feature that nvidia could not get to work properly?...
On the flip side in favour of this routing the clock skew may be restricted
to only to 2.6.1 kerns, I do not have it on my patched 2.4 kerns, it may
be fine on 2.6.5.
Here is a link to the old thread with the skew issues.
http://linux.derkeiler.com/Mailing-Lists/Kernel/2004-01/3129.html
Christian - would you please check if you get clock skew as described in
that thread?
>
> We could list the BIOS in dmi_scan(), but I hate doing
> that b/c then the vendor releases a new version of their
> broken BIOS and the automatic workaround no longer works...
>
> -Len
>
Unfortunately the hard lockups in the BUG report won't be fixed by this io-apic
work. I think Shuttle is the only manufacturer to ship a bios update which has
taken a board with existing lockup problems and fixed it. So far nobody has
posted how this magic was done?
http://linux.derkeiler.com/Mailing-Lists/Kernel/2004-01/5003.html
In the mean time I and others with lockups have had success with my C1 idle
patch but I have left it manual with kern arg for the same reason - no clean
way to automate it. Some nforce2 need it, others don't. Want me to finish
cleaning it up for possible inclusion?
http://linux.derkeiler.com/Mailing-Lists/Kernel/2004-04/1707.html
-Ross.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-14 1:02 ` IO-APIC on nforce2 [PATCH] Len Brown
2004-04-14 5:02 ` Ross Dickson
@ 2004-04-15 15:21 ` Zwane Mwaikambo
1 sibling, 0 replies; 27+ messages in thread
From: Zwane Mwaikambo @ 2004-04-15 15:21 UTC (permalink / raw)
To: Len Brown
Cc: ross, christian.kroener, Linux Kernel, Maciej W. Rozycki,
Protasevich, Natalie
On Tue, 13 Apr 2004, Len Brown wrote:
> Re: IRQ0 XT-PIC timer issue
>
> Since the hardware is connected to APIC pin0, it is a BIOS bug
> that an ACPI interrupt source override from pin2 to IRQ0 exists.
>
> With this simple 2.6.5 patch you can specify "acpi_skip_timer_override"
> to ignore that bogus BIOS directive. The result is with your
> ACPI-enabled APIC-enabled kernel, you'll get IRQ0 IO-APIC-edge timer.
>
> Probably there is a more clever way to trigger this workaround
> automatcially instead of via boot parameter.
Nice, this is the problem which broke Andrew's and the systems i tested
my adaptation of Natalie's mp_override_legacy_irq() change. Whacking out
previous mp_irq entries would have worked if the BIOS had not forced the
pin2 override.
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-15 1:48 ` Ross Dickson
@ 2004-04-15 17:09 ` Christian Kröner
0 siblings, 0 replies; 27+ messages in thread
From: Christian Kröner @ 2004-04-15 17:09 UTC (permalink / raw)
To: linux-kernel; +Cc: Len Brown, ross, Maciej W. Rozycki
On Thursday 15 April 2004 10:17, Len Brown wrote:
> I'm okay putting the bootparam and the workaround into the kernel,
> for it is generic and we may find other platforms need it.
Thats more than what I could have expected, thanks.
Ross, I tested my kernel with nmi_watchdog=1 and nmi_watchdog=2 getting only 2
to work.
output: nmi_watchdog=1
activating NMI Watchdog ... done.
testing NMI watchdog ... CPU#0: NMI appears to be stuck!
output: nmi_watchdog=2
testing NMI watchdog ... OK.
This is on 2.6.5-mm5-1.
Concerning the timer, well I tested it against my radio-controlled clock,
setting it with ntpdate first and letting the system run (with ntpd off) and
my system is kinda faster than my radio-clock. After about one hour my system
was off by +14s compared to the radio-clock. I don't know if that is pretty
shitty or simply normal for these bad pc-clocks...
I'm now compiling 2.6.6-rc1 with the nmi_watchdog=1 workaround. One question
about the C1idle-patch, does this add a new feature or is it just a
workaround for locked up nforce2-systems (since I never experienced lockups
on my system, I wouldn't need it then)?
thanks for now, christian.
^ permalink raw reply [flat|nested] 27+ messages in thread
* RE: IO-APIC on nforce2 [PATCH]
@ 2004-04-15 18:33 Allen Martin
2004-04-15 19:20 ` Craig Bradney
2004-04-15 19:50 ` Len Brown
0 siblings, 2 replies; 27+ messages in thread
From: Allen Martin @ 2004-04-15 18:33 UTC (permalink / raw)
To: ross, Len Brown, Christian Kröner, Linux-Nforce-Bugs
Cc: linux-kernel, Maciej W. Rozycki
> True it is a bios thing but I have yet to see an nforce2 MOBO
> that is not
> routed in this way. I am thinking it is internal to the
> chipset. I have seen
> none route it into io-apic pin2.
It was a bug in our original nForce reference BIOS that we gave out to vendors. Since then we fixed the reference BIOS, but since it was after products shipped, most of the motherboard vendors won't pick up the change unless they get complaints from customers.
We've fixed it for our reference BIOS for future products though.
-Allen
^ permalink raw reply [flat|nested] 27+ messages in thread
* RE: IO-APIC on nforce2 [PATCH]
2004-04-15 18:33 Allen Martin
@ 2004-04-15 19:20 ` Craig Bradney
2004-04-15 19:50 ` Len Brown
1 sibling, 0 replies; 27+ messages in thread
From: Craig Bradney @ 2004-04-15 19:20 UTC (permalink / raw)
To: Allen Martin
Cc: ross, Len Brown, Christian Kröner, Linux-Nforce-Bugs,
linux-kernel, Maciej W. Rozycki
[-- Attachment #1: Type: text/plain, Size: 1809 bytes --]
On Thu, 2004-04-15 at 20:33, Allen Martin wrote:
> > True it is a bios thing but I have yet to see an nforce2 MOBO
> > that is not
> > routed in this way. I am thinking it is internal to the
> > chipset. I have seen
> > none route it into io-apic pin2.
>
> It was a bug in our original nForce reference BIOS that we gave out to vendors. Since then we fixed the reference BIOS, but since it was after products shipped, most of the motherboard vendors won't pick up the change unless they get complaints from customers.
>
> We've fixed it for our reference BIOS for future products though.
Would it not be worth Nvidia advising the vendors (possibly already
done) that there are nForce BIOS issues causing reproducable hard
crashes with their existing BIOS versions with relation to the issue
here? I realise that these manufacturers (in my case ASUS) may have no
obligation and have their own product schedules of course.
There would seem to be many people puchasing nForce based systems and
many will not find out how or why there is the problem.
I for one, will not be buying another nForce based motherboard until I'm
sure this issue is sorted properly. Yes, I will probably find issues on
other boards, but I have no such hard crashes on an old P3 Sis chipset
board, a VIA KT Abit Duron board, nor on this P4 board with the very
same kernel source.
While my single purchases make no difference in the scheme of things,
the lack of support from the various manufacturers given to the kernel
developers (I refer in this case to Ross Dickson trying to get help
from Nvidia and another, I think AMD) is turning me away (back to Intel
CPUs).
Of course, I am very happy to finally see a response from someone from
Nvidia now.
With best regards
Craig Bradney
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-14 10:37 ` Maciej W. Rozycki
@ 2004-04-15 19:28 ` Len Brown
0 siblings, 0 replies; 27+ messages in thread
From: Len Brown @ 2004-04-15 19:28 UTC (permalink / raw)
To: Maciej W. Rozycki; +Cc: Ross Dickson, christian.kroener, linux-kernel
On Wed, 2004-04-14 at 06:37, Maciej W. Rozycki wrote:
> On Wed, 14 Apr 2004, Ross Dickson wrote:
> > The clock skew is an interesting one, I think the clock uses tsc if available
> > to interpolate between timer ints and if so should it not also be used to
> > validate the timer ints in case of noise? Apparently the clock speeds up not
> > slows down in those cases?
>
> With real hardware perhaps it can be debugged. The interaction between
> the 8254, the 8259As and the APICs seems interesting in the chipset.
> Perhaps the override to INTIN2 is to tell the timer is really unavailable
> directly?
That would be way too subtle for a BIOS writer;-)
> I can't see a way to have an ACPI override that specifies an
> ISA interrupt is not connected to the I/O APIC (unlike with the MPS).
I agree. And I think the existence of this /proc/interrupts
entry on an ACPI-enabled system should probably go away.
CPU0 CPU1
2: 0 0 XT-PIC cascade
ACPI also doesn't support sharing more than 1 pin on an IRQ.
So if you see a construct like this below, it is also a bug:
IRQ to pin mappings:
IRQ23 -> 0:23-> 0:7
cheers,
-Len
^ permalink raw reply [flat|nested] 27+ messages in thread
* RE: IO-APIC on nforce2 [PATCH]
2004-04-15 18:33 Allen Martin
2004-04-15 19:20 ` Craig Bradney
@ 2004-04-15 19:50 ` Len Brown
2004-04-16 8:27 ` Jamie Lokier
1 sibling, 1 reply; 27+ messages in thread
From: Len Brown @ 2004-04-15 19:50 UTC (permalink / raw)
To: Allen Martin
Cc: ross, Christian Kröner, Linux-Nforce-Bugs, linux-kernel,
Maciej W. Rozycki
On Thu, 2004-04-15 at 14:33, Allen Martin wrote:
> It was a bug in our original nForce reference BIOS that we gave out to vendors. Since then we fixed the reference BIOS, but since it was after products shipped, most of the motherboard vendors won't pick up the change unless they get complaints from customers.
>
> We've fixed it for our reference BIOS for future products though.
Great!
Knowing this makes the path clear.
As we expected, an automatic workaround based on chip-set would
fail because some BIOS's are fixed and some are not.
So we either leave the workaround as manual bootparam
or try to enumerate all BIOS versions with the bug
in dmi_scan. I'm content to do the former. If distros
have trouble supporting nforce2 systems, they may want to add
to the later.
thanks,
-Len
ps.
I'm also excited to see a linux-nforce-bugs@exchange.nvidia.com alias
on your note. Perhaps you can explain how we should use it. Should
this alias be included on discussions of the more important issue --
the system hang that seems to be related to HALT in idle/C1?
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-15 19:50 ` Len Brown
@ 2004-04-16 8:27 ` Jamie Lokier
2004-04-22 4:00 ` Len Brown
0 siblings, 1 reply; 27+ messages in thread
From: Jamie Lokier @ 2004-04-16 8:27 UTC (permalink / raw)
To: Len Brown
Cc: Allen Martin, ross, Christian Kröner, Linux-Nforce-Bugs,
linux-kernel, Maciej W. Rozycki
Len Brown wrote:
> As we expected, an automatic workaround based on chip-set would
> fail because some BIOS's are fixed and some are not.
Does the workaround actually fail with the fixed BIOSes?
-- Jamie
^ permalink raw reply [flat|nested] 27+ messages in thread
* RE: IO-APIC on nforce2 [PATCH]
@ 2004-04-16 16:41 Allen Martin
0 siblings, 0 replies; 27+ messages in thread
From: Allen Martin @ 2004-04-16 16:41 UTC (permalink / raw)
To: Len Brown
Cc: ross, Christian Kröner, Linux-Nforce-Bugs, linux-kernel,
Maciej W. Rozycki
> I'm also excited to see a linux-nforce-bugs@exchange.nvidia.com alias
> on your note. Perhaps you can explain how we should use it. Should
> this alias be included on discussions of the more important issue --
> the system hang that seems to be related to HALT in idle/C1?
Yes, any issues that are relevant to linux operation on nForce boards can go there. That list gets a lot of volume though, so any pressing issue that needs a response you can cc me directly.
-Allen
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-16 8:27 ` Jamie Lokier
@ 2004-04-22 4:00 ` Len Brown
2004-04-22 13:22 ` Maciej W. Rozycki
0 siblings, 1 reply; 27+ messages in thread
From: Len Brown @ 2004-04-22 4:00 UTC (permalink / raw)
To: Jamie Lokier
Cc: Allen Martin, ross, Christian Kröner, Linux-Nforce-Bugs,
linux-kernel, Maciej W. Rozycki
On Fri, 2004-04-16 at 04:27, Jamie Lokier wrote:
> Len Brown wrote:
> > As we expected, an automatic workaround based on chip-set would
> > fail because some BIOS's are fixed and some are not.
>
> Does the workaround actually fail with the fixed BIOSes?
A fixed BIOS will not have a bogus IRQ2->pin-2 mapping,
so the acpi_skip_timer_override workaround would not
find an entry to ignore, and would become a NOP.
So if
1. all nforce2 chipsets have timer connected to pin0
2. we can safely discover we're on nforce2 early enough,
like andi did on x86_64
then we could apply the workaround automatically always
w/o any harm.
-Len
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-22 4:00 ` Len Brown
@ 2004-04-22 13:22 ` Maciej W. Rozycki
2004-04-22 13:53 ` Christian Kröner
0 siblings, 1 reply; 27+ messages in thread
From: Maciej W. Rozycki @ 2004-04-22 13:22 UTC (permalink / raw)
To: Len Brown
Cc: Jamie Lokier, Allen Martin, ross, Christian Kröner,
Linux-Nforce-Bugs, linux-kernel
On Thu, 22 Apr 2004, Len Brown wrote:
> So if
> 1. all nforce2 chipsets have timer connected to pin0
Allen, is there a possibility to get a clarification from Nvidia on that?
Specifically, assuming both an 8254 and an I/O APIC core are integrated
into the chip, whether OUT0 of the 8254 is unconditionally routed to
INTIN0 of the I/O APIC or is it configurable somehow.
> 2. we can safely discover we're on nforce2 early enough,
> like andi did on x86_64
>
> then we could apply the workaround automatically always
> w/o any harm.
Indeed.
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-22 13:22 ` Maciej W. Rozycki
@ 2004-04-22 13:53 ` Christian Kröner
2004-04-22 15:27 ` Len Brown
0 siblings, 1 reply; 27+ messages in thread
From: Christian Kröner @ 2004-04-22 13:53 UTC (permalink / raw)
To: linux-kernel
Cc: Len Brown, Jamie Lokier, Allen Martin, ross, Linux-Nforce-Bugs,
Maciej W. Rozycki
[-- Attachment #1: Type: text/plain, Size: 1448 bytes --]
since its becoming fancy to post dmidecode output, here is mine. my bios
vendor is MSI (K7N2-Delta) and it has released many BIOS updates for this
board, but none of them fixes the timer-issue. i only got the timer issue,
(related with it the already discussed obscure hi-load) no hang with c1
disconnect enabled. another thing i recently noticed (running 2.6.6-rc2-mm1
now) is that the last XT-PIC interrupt is gone now. i had cascade on irq2
routed as XT-PIC before, now cascade (whatever it is) doesnt exist
anymore ;).
/proc/interrupts now:
0: 32184529 IO-APIC-edge timer
1: 1741 IO-APIC-edge i8042
7: 0 IO-APIC-edge parport0
8: 4 IO-APIC-edge rtc
9: 0 IO-APIC-level acpi
12: 9229 IO-APIC-edge i8042
14: 107111 IO-APIC-edge ide0
15: 92 IO-APIC-edge ide1
16: 3138 IO-APIC-level ide2, saa7134[0]
17: 153 IO-APIC-level CMI8738
19: 2732391 IO-APIC-level nvidia
20: 4315754 IO-APIC-level ohci_hcd, eth0
21: 1167427697 IO-APIC-level ehci_hcd
22: 79 IO-APIC-level ohci_hcd
another thing that bugs me a little (a little offtopic here maybe), is the
irq21 of ehci_hcd seems to get hit about twice as often as the timer irq
although im not at all using USB... any suggestions? maybe i start a second
thread on this one...
attached: dmidecode output.
greets, christian.
pls CC on replies.
[-- Attachment #2: dmidecode.txt --]
[-- Type: text/plain, Size: 11463 bytes --]
# dmidecode 2.4
SMBIOS 2.3 present.
37 structures occupying 1049 bytes.
Table at 0x000F0000.
Handle 0x0000
DMI type 0, 20 bytes.
BIOS Information
Vendor: Phoenix Technologies, LTD
Version: 6.00 PG
Release Date: 03/29/2004
Address: 0xE0000
Runtime Size: 128 kB
ROM Size: 256 kB
Characteristics:
ISA is supported
PCI is supported
PNP is supported
APM is supported
BIOS is upgradeable
BIOS shadowing is allowed
Boot from CD is supported
Selectable boot is supported
BIOS ROM is socketed
EDD is supported
5.25"/360 KB floppy services are supported (int 13h)
5.25"/1.2 MB floppy services are supported (int 13h)
3.5"/720 KB floppy services are supported (int 13h)
3.5"/2.88 MB floppy services are supported (int 13h)
Print screen service is supported (int 5h)
8042 keyboard services are supported (int 9h)
Serial services are supported (int 14h)
Printer services are supported (int 17h)
CGA/mono video services are supported (int 10h)
ACPI is supported
USB legacy is supported
AGP is supported
LS-120 boot is supported
ATAPI Zip drive boot is supported
Function key-initiated network boot is supported
Handle 0x0001
DMI type 1, 25 bytes.
System Information
Manufacturer:
Product Name:
Version:
Serial Number:
UUID: Not Present
Wake-up Type: Power Switch
Handle 0x0002
DMI type 2, 8 bytes.
Base Board Information
Manufacturer: MICRO-STAR INTERNATIONAL CO., LTD
Product Name: MS-6570
Version:
Serial Number:
Handle 0x0003
DMI type 3, 17 bytes.
Chassis Information
Manufacturer:
Type: Desktop
Lock: Not Present
Version:
Serial Number:
Asset Tag:
Boot-up State: Unknown
Power Supply State: Unknown
Thermal State: Unknown
Security Status: Unknown
OEM Information: 0x00000000
Handle 0x0004
DMI type 4, 35 bytes.
Processor Information
Socket Designation: Socket A
Type: Central Processor
Family: Duron
Manufacturer: AMD
ID: 42 06 00 00 FF FB 83 01
Signature: Family 6, Model 4, Stepping 2
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
MMX (MMX technology supported)
FXSR (Fast floating-point save and restore)
Version: AMD Athlon(tm)
Voltage: 1.7 V
External Clock: 133 MHz
Max Speed: 2200 MHz
Current Speed: 1200 MHz
Status: Populated, Enabled
Upgrade: ZIF Socket
L1 Cache Handle: 0x0009
L2 Cache Handle: 0x000A
L3 Cache Handle: Not Provided
Serial Number:
Asset Tag:
Part Number:
Handle 0x0005
DMI type 5, 22 bytes.
Memory Controller Information
Error Detecting Method: 8-bit Parity
Error Correcting Capabilities:
None
Supported Interleave: One-way Interleave
Current Interleave: One-way Interleave
Maximum Memory Module Size: 32 MB
Maximum Total Memory Size: 96 MB
Supported Speeds:
70 ns
60 ns
Supported Memory Types:
Standard
EDO
Memory Module Voltage: 5.0 V
Associated Memory Slots: 3
0x0006
0x0007
0x0008
Enabled Error Correcting Capabilities: None
Handle 0x0006
DMI type 6, 12 bytes.
Memory Module Information
Socket Designation: A0
Bank Connections: None
Current Speed: 10 ns
Type: Other
Installed Size: Not Installed (Single-bank Connection)
Enabled Size: Not Installed (Single-bank Connection)
Error Status: OK
Handle 0x0007
DMI type 6, 12 bytes.
Memory Module Information
Socket Designation: A1
Bank Connections: 2
Current Speed: 10 ns
Type: Other
Installed Size: 512 MB (Single-bank Connection)
Enabled Size: 512 MB (Single-bank Connection)
Error Status: OK
Handle 0x0008
DMI type 6, 12 bytes.
Memory Module Information
Socket Designation: A2
Bank Connections: None
Current Speed: 10 ns
Type: Other
Installed Size: Not Installed (Single-bank Connection)
Enabled Size: Not Installed (Single-bank Connection)
Error Status: OK
Handle 0x0009
DMI type 7, 19 bytes.
Cache Information
Socket Designation: Internal Cache
Configuration: Enabled, Not Socketed, Level 1
Operational Mode: Write Back
Location: Internal
Installed Size: 128 KB
Maximum Size: 128 KB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Unknown
System Type: Unknown
Associativity: Unknown
Handle 0x000A
DMI type 7, 19 bytes.
Cache Information
Socket Designation: External Cache
Configuration: Enabled, Not Socketed, Level 2
Operational Mode: Write Back
Location: External
Installed Size: 256 KB
Maximum Size: 256 KB
Supported SRAM Types:
Synchronous
Installed SRAM Type: Synchronous
Speed: Unknown
Error Correction Type: Unknown
System Type: Unknown
Associativity: Unknown
Handle 0x000B
DMI type 8, 9 bytes.
Port Connector Information
Internal Reference Designator: PRIMARY IDE
Internal Connector Type: On Board IDE
External Reference Designator: Not Specified
External Connector Type: None
Port Type: Other
Handle 0x000C
DMI type 8, 9 bytes.
Port Connector Information
Internal Reference Designator: SECONDARY IDE
Internal Connector Type: On Board IDE
External Reference Designator: Not Specified
External Connector Type: None
Port Type: Other
Handle 0x000D
DMI type 8, 9 bytes.
Port Connector Information
Internal Reference Designator: FDD
Internal Connector Type: On Board Floppy
External Reference Designator: Not Specified
External Connector Type: None
Port Type: 8251 FIFO Compatible
Handle 0x000E
DMI type 8, 9 bytes.
Port Connector Information
Internal Reference Designator: COM1
Internal Connector Type: 9 Pin Dual Inline (pin 10 cut)
External Reference Designator:
External Connector Type: DB-9 male
Port Type: Serial Port 16450 Compatible
Handle 0x000F
DMI type 8, 9 bytes.
Port Connector Information
Internal Reference Designator: COM2
Internal Connector Type: 9 Pin Dual Inline (pin 10 cut)
External Reference Designator:
External Connector Type: DB-9 male
Port Type: Serial Port 16450 Compatible
Handle 0x0010
DMI type 8, 9 bytes.
Port Connector Information
Internal Reference Designator: LPT1
Internal Connector Type: DB-25 female
External Reference Designator:
External Connector Type: DB-25 female
Port Type: Parallel Port ECP/EPP
Handle 0x0011
DMI type 8, 9 bytes.
Port Connector Information
Internal Reference Designator: Keyboard
Internal Connector Type: PS/2
External Reference Designator:
External Connector Type: PS/2
Port Type: Keyboard Port
Handle 0x0012
DMI type 8, 9 bytes.
Port Connector Information
Internal Reference Designator: PS/2 Mouse
Internal Connector Type: PS/2
External Reference Designator:
External Connector Type: PS/2
Port Type: Mouse Port
Handle 0x0013
DMI type 8, 9 bytes.
Port Connector Information
Internal Reference Designator: Not Specified
Internal Connector Type: None
External Reference Designator: USB
External Connector Type: Other
Port Type: USB
Handle 0x0014
DMI type 9, 13 bytes.
System Slot Information
Designation: PCI0
Type: 32-bit PCI
Current Usage: Available
Length: Long
ID: 1
Characteristics:
5.0 V is provided
PME signal is supported
Handle 0x0015
DMI type 9, 13 bytes.
System Slot Information
Designation: PCI1
Type: 32-bit PCI
Current Usage: Available
Length: Long
ID: 2
Characteristics:
5.0 V is provided
PME signal is supported
Handle 0x0016
DMI type 9, 13 bytes.
System Slot Information
Designation: PCI2
Type: 32-bit PCI
Current Usage: In Use
Length: Long
ID: 3
Characteristics:
5.0 V is provided
PME signal is supported
Handle 0x0017
DMI type 9, 13 bytes.
System Slot Information
Designation: PCI3
Type: 32-bit PCI
Current Usage: In Use
Length: Long
ID: 4
Characteristics:
5.0 V is provided
PME signal is supported
Handle 0x0018
DMI type 9, 13 bytes.
System Slot Information
Designation: PCI4
Type: 32-bit PCI
Current Usage: Available
Length: Long
ID: 5
Characteristics:
5.0 V is provided
PME signal is supported
Handle 0x0019
DMI type 9, 13 bytes.
System Slot Information
Designation: AGP
Type: 32-bit AGP
Current Usage: Available
Length: Long
ID: 240
Characteristics:
5.0 V is provided
Handle 0x001A
DMI type 13, 22 bytes.
BIOS Language Information
Installable Languages: 3
n|US|iso8859-1
n|US|iso8859-1
r|CA|iso8859-1
Currently Installed Language: n|US|iso8859-1
Handle 0x001B
DMI type 16, 15 bytes.
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 1536 MB
Error Information Handle: Not Provided
Number Of Devices: 3
Handle 0x001C
DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x001B
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: A0
Bank Locator: Bank0/1
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
Handle 0x001D
DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x001B
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: 512 MB
Form Factor: DIMM
Set: None
Locator: A1
Bank Locator: Bank2/3
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
Handle 0x001E
DMI type 17, 27 bytes.
Memory Device
Array Handle: 0x001B
Error Information Handle: Not Provided
Total Width: Unknown
Data Width: Unknown
Size: No Module Installed
Form Factor: DIMM
Set: None
Locator: A2
Bank Locator: Bank4/5
Type: Unknown
Type Detail: None
Speed: Unknown
Manufacturer: None
Serial Number: None
Asset Tag: None
Part Number: None
Handle 0x001F
DMI type 19, 15 bytes.
Memory Array Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x0001FFFFFFF
Range Size: 512 MB
Physical Array Handle: 0x001B
Partition Width: 0
Handle 0x0020
DMI type 20, 19 bytes.
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000000003FF
Range Size: 1 kB
Physical Device Handle: 0x001C
Memory Array Mapped Address Handle: 0x001F
Partition Row Position: 1
Handle 0x0021
DMI type 20, 19 bytes.
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x0001FFFFFFF
Range Size: 512 MB
Physical Device Handle: 0x001D
Memory Array Mapped Address Handle: 0x001F
Partition Row Position: 1
Handle 0x0022
DMI type 20, 19 bytes.
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000000003FF
Range Size: 1 kB
Physical Device Handle: 0x001E
Memory Array Mapped Address Handle: 0x001F
Partition Row Position: 1
Handle 0x0023
DMI type 32, 11 bytes.
System Boot Information
Status: No errors detected
Handle 0x0024
DMI type 127, 4 bytes.
End Of Table
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-22 13:53 ` Christian Kröner
@ 2004-04-22 15:27 ` Len Brown
2004-04-22 15:40 ` Maciej W. Rozycki
2004-04-22 16:15 ` Christian Kröner
0 siblings, 2 replies; 27+ messages in thread
From: Len Brown @ 2004-04-22 15:27 UTC (permalink / raw)
To: Christian Kröner
Cc: linux-kernel, Jamie Lokier, Allen Martin, ross, Linux-Nforce-Bugs,
Maciej W. Rozycki
On Thu, 2004-04-22 at 09:53, Christian Kröner wrote:
> since its becoming fancy to post dmidecode output
Thanks. BTW. sending the dmidecode directly to me should be sufficient
should you have need to do so again.
> another thing i recently noticed (running 2.6.6-rc2-mm1
> now) is that the last XT-PIC interrupt is gone now. i had cascade on
> irq2
> routed as XT-PIC before, now cascade (whatever it is) doesnt exist
> anymore ;).
Yes, this is normal on ACPI+IOAPIC configs going forward
details here: http://bugzilla.kernel.org/show_bug.cgi?id=2564
> /proc/interrupts now:
>
> 0: 32184529 IO-APIC-edge timer
> 1: 1741 IO-APIC-edge i8042
> 7: 0 IO-APIC-edge parport0
> 8: 4 IO-APIC-edge rtc
> 9: 0 IO-APIC-level acpi
> 12: 9229 IO-APIC-edge i8042
> 14: 107111 IO-APIC-edge ide0
> 15: 92 IO-APIC-edge ide1
> 16: 3138 IO-APIC-level ide2, saa7134[0]
> 17: 153 IO-APIC-level CMI8738
> 19: 2732391 IO-APIC-level nvidia
> 20: 4315754 IO-APIC-level ohci_hcd, eth0
> 21: 1167427697 IO-APIC-level ehci_hcd
> 22: 79 IO-APIC-level ohci_hcd
> another thing that bugs me a little (a little offtopic here maybe), is
> the
> irq21 of ehci_hcd seems to get hit about twice as often as the timer
> irq
> although im not at all using USB... any suggestions? maybe i start a
> second
> thread on this one...
Better yet, file a bug and we'll look at your ehci interrupt issue in
detail.
thanks,
-Len
How to file a bug against ACPI:
http://bugzilla.kernel.org/enter_bug.cgi?product=ACPI
For failure and success case, please attach
1. dmesg -s64000, or serial console using "debug" on cmdline.
(increase CONFIG_LOG_BUF_SHIFT if it doesn't get back to beginning)
2. /proc/interrupts
3. lspci -v
Please attach the output from acpidmp, available in /usr/sbin/, or in
pmtools:
http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/utils/
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-22 15:27 ` Len Brown
@ 2004-04-22 15:40 ` Maciej W. Rozycki
2004-04-22 16:15 ` Christian Kröner
1 sibling, 0 replies; 27+ messages in thread
From: Maciej W. Rozycki @ 2004-04-22 15:40 UTC (permalink / raw)
To: Len Brown
Cc: Christian Kröner, linux-kernel, Jamie Lokier, Allen Martin,
ross, Linux-Nforce-Bugs
On Thu, 22 Apr 2004, Len Brown wrote:
> Yes, this is normal on ACPI+IOAPIC configs going forward
> details here: http://bugzilla.kernel.org/show_bug.cgi?id=2564
Except that the IRQ was reserved for plain 8259A setups, where it is
really used for a cascade for a slave 8259A, long before any APIC support
was there in Linux. JFTR.
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
^ permalink raw reply [flat|nested] 27+ messages in thread
* Re: IO-APIC on nforce2 [PATCH]
2004-04-22 15:27 ` Len Brown
2004-04-22 15:40 ` Maciej W. Rozycki
@ 2004-04-22 16:15 ` Christian Kröner
1 sibling, 0 replies; 27+ messages in thread
From: Christian Kröner @ 2004-04-22 16:15 UTC (permalink / raw)
To: Len Brown; +Cc: linux-kernel
On Thursday 22 April 2004 17:27, you wrote:
> On Thu, 2004-04-22 at 09:53, Christian Kröner wrote:
> > since its becoming fancy to post dmidecode output
>
> Thanks. BTW. sending the dmidecode directly to me should be sufficient
> should you have need to do so again.
>
> > another thing i recently noticed (running 2.6.6-rc2-mm1
> > now) is that the last XT-PIC interrupt is gone now. i had cascade on
> > irq2
> > routed as XT-PIC before, now cascade (whatever it is) doesnt exist
> > anymore ;).
>
> Yes, this is normal on ACPI+IOAPIC configs going forward
> details here: http://bugzilla.kernel.org/show_bug.cgi?id=2564
>
> > /proc/interrupts now:
> >
> > 0: 32184529 IO-APIC-edge timer
> > 1: 1741 IO-APIC-edge i8042
> > 7: 0 IO-APIC-edge parport0
> > 8: 4 IO-APIC-edge rtc
> > 9: 0 IO-APIC-level acpi
> > 12: 9229 IO-APIC-edge i8042
> > 14: 107111 IO-APIC-edge ide0
> > 15: 92 IO-APIC-edge ide1
> > 16: 3138 IO-APIC-level ide2, saa7134[0]
> > 17: 153 IO-APIC-level CMI8738
> > 19: 2732391 IO-APIC-level nvidia
> > 20: 4315754 IO-APIC-level ohci_hcd, eth0
> > 21: 1167427697 IO-APIC-level ehci_hcd
> > 22: 79 IO-APIC-level ohci_hcd
> >
> >
> > another thing that bugs me a little (a little offtopic here maybe), is
> > the
> > irq21 of ehci_hcd seems to get hit about twice as often as the timer
> > irq
> > although im not at all using USB... any suggestions? maybe i start a
> > second
> > thread on this one...
>
> Better yet, file a bug and we'll look at your ehci interrupt issue in
> detail.
>
> thanks,
> -Len
>
> How to file a bug against ACPI:
>
> http://bugzilla.kernel.org/enter_bug.cgi?product=ACPI
>
> For failure and success case, please attach
> 1. dmesg -s64000, or serial console using "debug" on cmdline.
> (increase CONFIG_LOG_BUF_SHIFT if it doesn't get back to beginning)
> 2. /proc/interrupts
> 3. lspci -v
>
> Please attach the output from acpidmp, available in /usr/sbin/, or in
> pmtools:
> http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/utils/
Since I don't know which category of ACPI bugtracking my "bug" fits into I
send the symptom here:
cat /proc/interrupts
0: 41075417 IO-APIC-edge timer
1: 27326 IO-APIC-edge i8042
7: 0 IO-APIC-edge parport0
8: 4 IO-APIC-edge rtc
9: 0 IO-APIC-level acpi
12: 226123 IO-APIC-edge i8042
14: 152298 IO-APIC-edge ide0
15: 92 IO-APIC-edge ide1
16: 28174 IO-APIC-level ide2, saa7134[0]
17: 86370 IO-APIC-level CMI8738
19: 3500294 IO-APIC-level nvidia
20: 5858400 IO-APIC-level ohci_hcd, eth0
21: 2678002320 IO-APIC-level ehci_hcd
22: 79 IO-APIC-level ohci_hcd
NMI: 13435
LOC: 40935121
ERR: 0
MIS: 0
and the same only 5 seconds later:
0: 41082729 IO-APIC-edge timer
1: 27350 IO-APIC-edge i8042
7: 0 IO-APIC-edge parport0
8: 4 IO-APIC-edge rtc
9: 0 IO-APIC-level acpi
12: 226123 IO-APIC-edge i8042
14: 152313 IO-APIC-edge ide0
15: 92 IO-APIC-edge ide1
16: 28243 IO-APIC-level ide2, saa7134[0]
17: 86515 IO-APIC-level CMI8738
19: 3500917 IO-APIC-level nvidia
20: 5859792 IO-APIC-level ohci_hcd, eth0
21: 2679242125 IO-APIC-level ehci_hcd
22: 79 IO-APIC-level ohci_hcd
NMI: 13438
LOC: 40942396
ERR: 0
MIS: 0
It seems as if irq21 (ehci_hcd) got hit 1 239 805 times in only 5 seconds
without me even using USB in that period.
Please tell me into which category I should file this issue and I will happily
file a bug report right after...
thanks, christian.
^ permalink raw reply [flat|nested] 27+ messages in thread
* RE: IO-APIC on nforce2 [PATCH]
@ 2004-04-23 1:23 Allen Martin
2004-04-23 15:39 ` Maciej W. Rozycki
0 siblings, 1 reply; 27+ messages in thread
From: Allen Martin @ 2004-04-23 1:23 UTC (permalink / raw)
To: Maciej W. Rozycki, Len Brown
Cc: Jamie Lokier, ross, Christian Kröner, Linux-Nforce-Bugs,
linux-kernel
> Allen, is there a possibility to get a clarification from
> Nvidia on that?
> Specifically, assuming both an 8254 and an I/O APIC core are
> integrated
> into the chip, whether OUT0 of the 8254 is unconditionally routed to
> INTIN0 of the I/O APIC or is it configurable somehow.
The 8254 PIT is hardwared to IRQ0 on all nForce chipsets, it can't be routed.
-Allen
^ permalink raw reply [flat|nested] 27+ messages in thread
* RE: IO-APIC on nforce2 [PATCH]
2004-04-23 1:23 Allen Martin
@ 2004-04-23 15:39 ` Maciej W. Rozycki
0 siblings, 0 replies; 27+ messages in thread
From: Maciej W. Rozycki @ 2004-04-23 15:39 UTC (permalink / raw)
To: Allen Martin
Cc: Len Brown, Jamie Lokier, ross, Christian Kröner,
Linux-Nforce-Bugs, linux-kernel
On Thu, 22 Apr 2004, Allen Martin wrote:
> The 8254 PIT is hardwared to IRQ0 on all nForce chipsets, it can't be routed.
Thanks for this info. Thus the workaround can be unconditional.
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
^ permalink raw reply [flat|nested] 27+ messages in thread
end of thread, other threads:[~2004-04-23 15:39 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-14 21:01 IO-APIC on nforce2 [PATCH] Christian Kröner
2004-04-15 0:35 ` Peter Clifton
2004-04-15 0:29 ` Craig Bradney
2004-04-15 0:41 ` Ross Dickson
-- strict thread matches above, loose matches on Subject: below --
2004-04-23 1:23 Allen Martin
2004-04-23 15:39 ` Maciej W. Rozycki
2004-04-16 16:41 Allen Martin
2004-04-15 18:33 Allen Martin
2004-04-15 19:20 ` Craig Bradney
2004-04-15 19:50 ` Len Brown
2004-04-16 8:27 ` Jamie Lokier
2004-04-22 4:00 ` Len Brown
2004-04-22 13:22 ` Maciej W. Rozycki
2004-04-22 13:53 ` Christian Kröner
2004-04-22 15:27 ` Len Brown
2004-04-22 15:40 ` Maciej W. Rozycki
2004-04-22 16:15 ` Christian Kröner
2004-04-13 1:17 IO-APIC on nforce2 Ross Dickson
2004-04-13 5:08 ` Len Brown
2004-04-13 7:03 ` Ross Dickson
2004-04-14 1:02 ` IO-APIC on nforce2 [PATCH] Len Brown
2004-04-14 5:02 ` Ross Dickson
2004-04-14 6:30 ` Jamie Lokier
2004-04-14 10:37 ` Maciej W. Rozycki
2004-04-15 19:28 ` Len Brown
2004-04-14 19:57 ` Christian Kröner
2004-04-15 0:17 ` Len Brown
2004-04-15 1:48 ` Ross Dickson
2004-04-15 17:09 ` Christian Kröner
2004-04-15 15:21 ` Zwane Mwaikambo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox