* IO APIC error
@ 2002-05-02 23:44 Kosta Porotchkin
2002-05-02 23:57 ` Andi Kleen
0 siblings, 1 reply; 7+ messages in thread
From: Kosta Porotchkin @ 2002-05-02 23:44 UTC (permalink / raw)
To: linux-kernel
Hi,
I discovered some strange behavior of APIC initialization which forced me to
start reading the kernel source code.
Platform: Dual Xeon(tm) motherboard with Intel 82870P2 chipset, diskless.
Net-booting kernel 2.4.17 (Sherman from MontaVista).
1. For some reason the "dmesg" is not displaying an early kernel messages.
The log started somewhere from CPU #2 initialization (which is third CPU -
Two Xeons are recognized as four processors, it is normal). I stopped this
kernel in debugger and got some messages from MP table parsing procedure
which were not included in "dmesg" output:
I/O APIC # 2 Version 32 at 0xFEC00000
I/O APIC # 3 Version 32 at 0xFEC80000
I/O APIC # 4 Version 32 at 0xFEC80400
I/O APIC # 5 Version 32 at 0xFEC81000
I/O APIC # 8 Version 32 at 0xFEC81400
2. When I looking through the "dmesg" output I can see the IO APICs ID
re-assignment:
ENABLING IO-APIC IRQs
Setting 2 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 2 ... ok.
Setting 3 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 3 ... ok.
Setting 4 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 4 ... ok.
Setting 5 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 5 ... ok.
Setting 8 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 8 ... ok.
init IO_APIC IRQs
3. The things are going wrong during the test phase (i.e. after the "testing
the IO APIC....................." is printed). IO APIC #2 register #00 reads
02008000, which is wrong according to the chipset specification - should be
02000000. That is the reason I got the warning "unexpected IO-APIC, please
mail to linux-smp@vger.kernel.org". Let's said that the platform I using is
pretty new and some hardware errors may happen, so I am less worry about
this particular message. The most strange thing is the readings from the
rest of IO APICs. The IO APIC #3 reads physical ID 4, #4 also 4, both # 5
and #8 has 08000000 in their register #00. How it can be?
4. When I tried to understand the source code, I found that all the IO APIC
operations are done trough the fixed memory addresses (io_apic_read() and
io_apic_write() in io_apic.h). I am sure, I do not understand the boot
process enough for asking my questions, but probably someone from Linux
community will help me to solve this problem. Why the fixed addresses are
used? Shouldn't we use the base address provided by BIOS in MP table for
each IO APIC?
Thanks
Kosta Porotchkin
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.351 / Virus Database: 197 - Release Date: 4/19/2002
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: IO APIC error
2002-05-02 23:44 IO APIC error Kosta Porotchkin
@ 2002-05-02 23:57 ` Andi Kleen
0 siblings, 0 replies; 7+ messages in thread
From: Andi Kleen @ 2002-05-02 23:57 UTC (permalink / raw)
To: Kosta Porotchkin; +Cc: linux-kernel
"Kosta Porotchkin" <kporotchkin@gmx.net> writes:
>1. For some reason the "dmesg" is not displaying an early kernel messages.
>The log started somewhere from CPU #2 initialization (which is third CPU -
>Two Xeons are recognized as four processors, it is normal). I stopped this
>kernel in debugger and got some messages from MP table parsing procedure
>which were not included in "dmesg" output:
Increase the buffer in kernel/printk.c
>3. The things are going wrong during the test phase (i.e. after the "testing
>the IO APIC....................." is printed). IO APIC #2 register #00 reads
>02008000, which is wrong according to the chipset specification - should be
>02000000. That is the reason I got the warning "unexpected IO-APIC, please
>mail to linux-smp@vger.kernel.org". Let's said that the platform I using is
>pretty new and some hardware errors may happen, so I am less worry about
>this particular message. The most strange thing is the readings from the
>rest of IO APICs. The IO APIC #3 reads physical ID 4, #4 also 4, both # 5
>and #8 has 08000000 in their register #00. How it can be?
It's possible that the mptable is wrong. Windows uses ACPI to find
the IO-APIC, so the mptable is often not well tested. It may help
to change the MP support in the BIOS setup from 1.4 to 1.1.
> 4. When I tried to understand the source code, I found that all the IO APIC
> operations are done trough the fixed memory addresses (io_apic_read() and
> io_apic_write() in io_apic.h). I am sure, I do not understand the boot
> process enough for asking my questions, but probably someone from Linux
> community will help me to solve this problem. Why the fixed addresses are
> used? Shouldn't we use the base address provided by BIOS in MP table for
> each IO APIC?
The MP table contains physical addresses. Linux kernel uses virtual
addresses. The physical addresses are mapped to the fixed virtual
addresses in init_apic_mappings().
-Andi
^ permalink raw reply [flat|nested] 7+ messages in thread
* IO APIC error
@ 2003-12-13 8:34 Justin Dale Coffman
0 siblings, 0 replies; 7+ messages in thread
From: Justin Dale Coffman @ 2003-12-13 8:34 UTC (permalink / raw)
To: linux-smp
number of IO-APIC #2 registers: 24.
testing the IO APIC.......................
IO APIC #2......
.... register #00: 02000000
....... : physical APIC id: 02
.... register #01: 00178020
....... : max redirection entries: 0017
....... : PRQ implemented: 1
....... : IO APIC version: 0020
.... register #02: 00178020
....... : arbitration: 00
An unexpected IO-APIC was found. If this kernel release is less than
three months old please report this to linux-smp@vger.kernel.org
_______________________________________
justin coffman | jcoffman@cc.gatech.edu
^ permalink raw reply [flat|nested] 7+ messages in thread
* io apic error
@ 2003-08-21 13:35 Hellmasker
0 siblings, 0 replies; 7+ messages in thread
From: Hellmasker @ 2003-08-21 13:35 UTC (permalink / raw)
To: linux-smp
IO APIC #2......
.... register #00: 02000000
....... : physical APIC id: 02
....... : Delivery Type: 0
....... : LTS : 0
.... register #01: 00178003
....... : max redirection entries: 0017
....... : PRQ implemented: 1
....... : IO APIC version: 0003
An unexpected IO-APIC was found. If this kernel release is less than
three months old please report this to linux-smp@vger.kernel.org
note: this was taken from dmesg usign kernel 2.4.21-0.25mdk
^ permalink raw reply [flat|nested] 7+ messages in thread
* IO APIC error
@ 2003-02-04 21:12 Bryan Yeung
2003-02-04 22:49 ` Alan Cox
0 siblings, 1 reply; 7+ messages in thread
From: Bryan Yeung @ 2003-02-04 21:12 UTC (permalink / raw)
To: linux-smp
Hello,
I am investigating spontaneous hangups of one of our machines and have
found this error in messages log after rebooting. Can you explain?
Feb 4 16:19:01 deimos kernel: testing the IO APIC.......................
Feb 4 16:19:01 deimos kernel:
Feb 4 16:19:01 deimos kernel: WARNING: unexpected IO-APIC, please mail
Feb 4 16:19:01 deimos kernel: to linux-smp@vger.kernel.org
Feb 4 16:19:01 deimos kernel: .................................... done
The machine is running dual Intel processors and kernel 2.4.10.
Thanks,
Bryan
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: IO APIC error
2003-02-04 21:12 IO APIC error Bryan Yeung
@ 2003-02-04 22:49 ` Alan Cox
0 siblings, 0 replies; 7+ messages in thread
From: Alan Cox @ 2003-02-04 22:49 UTC (permalink / raw)
To: Bryan Yeung; +Cc: linux-smp
On Tue, 2003-02-04 at 21:12, Bryan Yeung wrote:
> Hello,
>
> I am investigating spontaneous hangups of one of our machines and have
> found this error in messages log after rebooting. Can you explain?
>
> Feb 4 16:19:01 deimos kernel: testing the IO APIC.......................
> Feb 4 16:19:01 deimos kernel:
> Feb 4 16:19:01 deimos kernel: WARNING: unexpected IO-APIC, please mail
> Feb 4 16:19:01 deimos kernel: to linux-smp@vger.kernel.org
> Feb 4 16:19:01 deimos kernel: .................................... done
>
> The machine is running dual Intel processors and kernel 2.4.10.
Firstly upgrade the kernel to 2.4.18/19/20. I'm not saying it will fix your
hang but many many bugs have been fixed. In addition the newer kernels know
a lot more APIC types. The message is actually unlikely to be the cause.
With the exception of SiS we support pretty much all APIC setups. SiS APIC
right now requires 2.5 and some VIA APIC requires a 2.4.21-ac test patch.
One thing 2.4.10 doesn't handle is dual pentium IV.
^ permalink raw reply [flat|nested] 7+ messages in thread
* IO APIC error
@ 2002-05-02 21:33 Kosta Porotchkin
0 siblings, 0 replies; 7+ messages in thread
From: Kosta Porotchkin @ 2002-05-02 21:33 UTC (permalink / raw)
To: linux-smp
Hi,
I discovered some strange behavior of APIC initialization which forced me to
start reading the kernel source code.
Platform: Dual Xeon(tm) motherboard with Intel 82870P2 chipset, diskless.
Net-booting kernel 2.4.17 (Sherman from MontaVista).
1. For some reason the "dmesg" is not displaying an early kernel messages.
The log started somewhere from CPU #2 initialization (which is third CPU -
Two Xeons are recognized as four processors, it is normal). I stopped this
kernel in debugger and got some messages from MP table parsing procedure
which were not included in "dmesg" output:
I/O APIC # 2 Version 32 at 0xFEC00000
I/O APIC # 3 Version 32 at 0xFEC80000
I/O APIC # 4 Version 32 at 0xFEC80400
I/O APIC # 5 Version 32 at 0xFEC81000
I/O APIC # 8 Version 32 at 0xFEC81400
2. When I looking through the "dmesg" output I can see the IO APICs ID
re-assignment:
ENABLING IO-APIC IRQs
Setting 2 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 2 ... ok.
Setting 3 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 3 ... ok.
Setting 4 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 4 ... ok.
Setting 5 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 5 ... ok.
Setting 8 in the phys_id_present_map
...changing IO-APIC physical APIC ID to 8 ... ok.
init IO_APIC IRQs
3. The things are going wrong during the test phase (i.e. after the "testing
the IO APIC....................." is printed). IO APIC #2 register #00 reads
02008000, which is wrong according to the chipset specification - should be
02000000. That is the reason I got the warning "unexpected IO-APIC, please
mail to linux-smp@vger.kernel.org". Let's said that the platform I using is
pretty new and some hardware errors may happen, so I am less worry about
this particular message. The most strange thing is the readings from the
rest of IO APICs. The IO APIC #3 reads physical ID 4, #4 also 4, both # 5
and #8 has 08000000 in their register #00. How it can be?
4. When I tried to understand the source code, I found that all the IO APIC
operations are done trough the fixed memory addresses (io_apic_read() and
io_apic_write() in io_apic.h). I am sure, I do not understand the boot
process enough for asking my questions, but probably someone from Linux
community will help me to solve this problem. Why the fixed addresses are
used? Shouldn't we use the base address provided by BIOS in MP table for
each IO APIC?
Thanks
Kosta Porotchkin
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.351 / Virus Database: 197 - Release Date: 4/19/2002
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2003-12-13 8:34 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-05-02 23:44 IO APIC error Kosta Porotchkin
2002-05-02 23:57 ` Andi Kleen
-- strict thread matches above, loose matches on Subject: below --
2003-12-13 8:34 Justin Dale Coffman
2003-08-21 13:35 io apic error Hellmasker
2003-02-04 21:12 IO APIC error Bryan Yeung
2003-02-04 22:49 ` Alan Cox
2002-05-02 21:33 Kosta Porotchkin
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.