* [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU
@ 2008-11-21 15:44 Rubio, Martial
2008-11-21 16:45 ` Jan Kiszka
0 siblings, 1 reply; 8+ messages in thread
From: Rubio, Martial @ 2008-11-21 15:44 UTC (permalink / raw)
To: xenomai; +Cc: jeanfrancois.gilot, Dupeyrou, Gilles
[-- Attachment #1: Type: text/plain, Size: 2723 bytes --]
Hello everybody
I'm working with following config :
CPU (0=>3) AMD Dual Core AMD Opteron
Linux version 2.6.25-pae
Xenomai : hal / i386
Xenomai : real time nucleus v2.4.5
Here's below the state of /proc/interrupts :
in red fonts the range of PCIe(xpress)-MSI vectors :
hurle-bise [anaisvs](34):more /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 146 0 0 0 XT-PIC-XT
timer
1: 1039 0 0 0 XT-PIC-XT
i8042
2: 0 0 0 0 XT-PIC-XT
cascade
4: 5 0 0 0 XT-PIC-XT
5: 2 0 0 0 XT-PIC-XT
ehci_hcd:usb2
6: 5 0 0 0 XT-PIC-XT
floppy
7: 16300 0 0 0 XT-PIC-XT
ohci_hcd:usb1
10: 155104 0 0 0 XT-PIC-XT
ioc0, sata_nv, sata_nv, ohci1394
11: 47305 0 0 0 XT-PIC-XT
sata_nv, HDA Intel
14: 0 0 0 0 XT-PIC-XT
pata_amd
15: 0 0 0 0 XT-PIC-XT
pata_amd
212: 0 9 487 1942504 PCI-MSI-edge
eth0
213: 0 0 0 0 PCI-MSI-edge
shpchp
NMI: 0 0 0 0 Non-maskable
interrupts
LOC: 3722798 3722767 3722730 3722768 Local timer
interrupts
RES: 39386 37672 23570 25780 Rescheduling
interrupts
CAL: 1112 1273 1280 250 function call
interrupts
TLB: 6144 8510 6271 9025 TLB shootdowns
TRM: 0 0 0 0 Thermal event
interrupts
SPU: 0 0 0 0 Spurious interrupts
ERR: 1
MIS: 0
I try to install a new MSI interrupt via rtdm package (rtdm_irq_request)
with
a vector number (211) given by the call to pci_msi_enable for the new
PCIe device.
The system hangs up immediatly (sometimes I can catch the stack trace
with dmesg
the last reference seems to be in rt_hal package)
If I replace (for debug only!!!) this vector number by an unused
"classical" vector number (for instance
14 or 15) ... no problem.
Have you allready test this kind of configuration ... if so a little
help from your part would be
greatly appreciated!
Kind regards
Martial Rubio
Eurocopter France - ETZSR
Technical software manager
* : <mailto:martial.rubio@domain.hid
<mailto:martial.rubio@domain.hid> >
( 04 42 85 68 11
7 04 42 85 88 35
[-- Attachment #2: Type: text/html, Size: 13415 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU 2008-11-21 15:44 [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU Rubio, Martial @ 2008-11-21 16:45 ` Jan Kiszka 2008-11-24 16:55 ` Rubio, Martial 0 siblings, 1 reply; 8+ messages in thread From: Jan Kiszka @ 2008-11-21 16:45 UTC (permalink / raw) To: Rubio, Martial; +Cc: jeanfrancois.gilot, xenomai, Dupeyrou, Gilles Rubio, Martial wrote: > Hello everybody > > I'm working with following config : > > CPU (0=>3) AMD Dual Core AMD Opteron > Linux version 2.6.25-pae 2.6.25 comes with the risk of missing relevant fixes that went into .26 and later. Do you have a chance to update? 2.6.27 is a bit fresh, 2.6.26.7 + ipipe-2.0-16 would be a conservative approach right now. > Xenomai : hal / i386 > Xenomai : real time nucleus v2.4.5 > > Here's below the state of /proc/interrupts : > > in red fonts the range of PCIe(xpress)-MSI vectors : Uuh, please don't expect the reader to have HTML rendering on for a typically text-only medium like mail. Yeah, it tends to be the other way around inside companies, I know... > > hurle-bise [anaisvs](34):more /proc/interrupts > CPU0 CPU1 CPU2 CPU3 > 0: 146 0 0 0 XT-PIC-XT > timer > 1: 1039 0 0 0 XT-PIC-XT > i8042 > 2: 0 0 0 0 XT-PIC-XT > cascade > 4: 5 0 0 0 XT-PIC-XT > 5: 2 0 0 0 XT-PIC-XT > ehci_hcd:usb2 > 6: 5 0 0 0 XT-PIC-XT > floppy > 7: 16300 0 0 0 XT-PIC-XT > ohci_hcd:usb1 > 10: 155104 0 0 0 XT-PIC-XT > ioc0, sata_nv, sata_nv, ohci1394 > 11: 47305 0 0 0 XT-PIC-XT > sata_nv, HDA Intel > 14: 0 0 0 0 XT-PIC-XT > pata_amd > 15: 0 0 0 0 XT-PIC-XT > pata_amd > 212: 0 9 487 1942504 PCI-MSI-edge > eth0 > 213: 0 0 0 0 PCI-MSI-edge > shpchp > NMI: 0 0 0 0 Non-maskable > interrupts > LOC: 3722798 3722767 3722730 3722768 Local timer > interrupts > RES: 39386 37672 23570 25780 Rescheduling > interrupts > CAL: 1112 1273 1280 250 function call > interrupts > TLB: 6144 8510 6271 9025 TLB shootdowns > TRM: 0 0 0 0 Thermal event > interrupts > SPU: 0 0 0 0 Spurious interrupts > ERR: 1 > MIS: 0 > > I try to install a new MSI interrupt via rtdm package (rtdm_irq_request) > with > a vector number (211) given by the call to pci_msi_enable for the new > PCIe device. Is that driver prepared to possibly receive an immediate IRQ after registration? Of course, that can only happen if the device's hardware is not explicitly configured to disable IRQ delivery. I'm asking as it is a common mistake to mixup IRQ arming and proper driver state initialization. > > The system hangs up immediatly (sometimes I can catch the stack trace > with dmesg > the last reference seems to be in rt_hal package) You should try to capture a full trace via a serial console e.g., see linux/Documentation/serial-console.txt. > > If I replace (for debug only!!!) this vector number by an unused > "classical" vector number (for instance > 14 or 15) ... no problem. > > Have you allready test this kind of configuration ... if so a little > help from your part would be > greatly appreciated! Another test around MSI: try to disable CONFIG_PCI_MSI and check if something changes. Jan -- Siemens AG, Corporate Technology, CT SE 2 ES-OS Corporate Competence Center Embedded Linux ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU 2008-11-21 16:45 ` Jan Kiszka @ 2008-11-24 16:55 ` Rubio, Martial 2008-11-25 13:13 ` Rubio, Martial 0 siblings, 1 reply; 8+ messages in thread From: Rubio, Martial @ 2008-11-24 16:55 UTC (permalink / raw) To: Jan Kiszka; +Cc: jeanfrancois.gilot, xenomai, Dupeyrou, Gilles [-- Attachment #1: Type: text/plain, Size: 4424 bytes --] Hello everybody ... Find attached text files which seems to be very useful about my CPU hanging Perharps a problem of detection of an external dev PCIe with only MSI 64-bit access Capability (pci_bus_read_config_dword instead of pci_bus_read_config_word in pci/msi.c) with a machine which has been configured in a 32-bit mode (mandatory in my case) ? What do you think of that? ... And if TRUE what to do (it's a question for J.F) Regards to all Martial -----Original Message----- From: Jan Kiszka [mailto:jan.kiszka@domain.hid Sent: Friday, November 21, 2008 5:46 PM To: Rubio, Martial Cc: xenomai@xenomai.org; jeanfrancois.gilot@domain.hid; Dupeyrou, Gilles Subject: Re: External PCIe device: MSI interrupt install hangs up the CPU Rubio, Martial wrote: > Hello everybody > > I'm working with following config : > > CPU (0=>3) AMD Dual Core AMD Opteron > Linux version 2.6.25-pae 2.6.25 comes with the risk of missing relevant fixes that went into .26 and later. Do you have a chance to update? 2.6.27 is a bit fresh, 2.6.26.7 + ipipe-2.0-16 would be a conservative approach right now. > Xenomai : hal / i386 > Xenomai : real time nucleus v2.4.5 > > Here's below the state of /proc/interrupts : > > in red fonts the range of PCIe(xpress)-MSI vectors : Uuh, please don't expect the reader to have HTML rendering on for a typically text-only medium like mail. Yeah, it tends to be the other way around inside companies, I know... > > hurle-bise [anaisvs](34):more /proc/interrupts > CPU0 CPU1 CPU2 CPU3 > 0: 146 0 0 0 XT-PIC-XT > timer > 1: 1039 0 0 0 XT-PIC-XT > i8042 > 2: 0 0 0 0 XT-PIC-XT > cascade > 4: 5 0 0 0 XT-PIC-XT > 5: 2 0 0 0 XT-PIC-XT > ehci_hcd:usb2 > 6: 5 0 0 0 XT-PIC-XT > floppy > 7: 16300 0 0 0 XT-PIC-XT > ohci_hcd:usb1 > 10: 155104 0 0 0 XT-PIC-XT > ioc0, sata_nv, sata_nv, ohci1394 > 11: 47305 0 0 0 XT-PIC-XT > sata_nv, HDA Intel > 14: 0 0 0 0 XT-PIC-XT > pata_amd > 15: 0 0 0 0 XT-PIC-XT > pata_amd > 212: 0 9 487 1942504 PCI-MSI-edge > eth0 > 213: 0 0 0 0 PCI-MSI-edge > shpchp > NMI: 0 0 0 0 Non-maskable > interrupts > LOC: 3722798 3722767 3722730 3722768 Local timer > interrupts > RES: 39386 37672 23570 25780 Rescheduling > interrupts > CAL: 1112 1273 1280 250 function call > interrupts > TLB: 6144 8510 6271 9025 TLB shootdowns > TRM: 0 0 0 0 Thermal event > interrupts > SPU: 0 0 0 0 Spurious interrupts > ERR: 1 > MIS: 0 > > I try to install a new MSI interrupt via rtdm package > (rtdm_irq_request) with a vector number (211) given by the call to > pci_msi_enable for the new PCIe device. Is that driver prepared to possibly receive an immediate IRQ after registration? Of course, that can only happen if the device's hardware is not explicitly configured to disable IRQ delivery. I'm asking as it is a common mistake to mixup IRQ arming and proper driver state initialization. > > The system hangs up immediatly (sometimes I can catch the stack trace > with dmesg the last reference seems to be in rt_hal package) You should try to capture a full trace via a serial console e.g., see linux/Documentation/serial-console.txt. > > If I replace (for debug only!!!) this vector number by an unused > "classical" vector number (for instance > 14 or 15) ... no problem. > > Have you allready test this kind of configuration ... if so a little > help from your part would be greatly appreciated! Another test around MSI: try to disable CONFIG_PCI_MSI and check if something changes. Jan -- Siemens AG, Corporate Technology, CT SE 2 ES-OS Corporate Competence Center Embedded Linux [-- Attachment #2: memory.map --] [-- Type: application/octet-stream, Size: 2119 bytes --] 00000000-0009d7ff : System RAM 0009d800-0009ffff : reserved 000a0000-000bffff : Video RAM area 000c0000-000cd3ff : Video ROM 000f0000-000fffff : System ROM 00100000-6feeffff : System RAM 00100000-002ed7b8 : Kernel code 002ed7b9-003ee73b : Kernel data 00430000-00549ecf : Kernel bss 6fef0000-6fefdfff : ACPI Tables 6fefe000-6ff7ffff : ACPI Non-volatile Storage 6ff80000-6fffffff : reserved 70000000-70003fff : 0000:00:06.1 70000000-70003fff : ICH HD audio 70004000-70004fff : 0000:00:02.0 70004000-70004fff : ohci_hcd 70005000-700050ff : 0000:00:02.1 70005000-700050ff : ehci_hcd 70005400-7000540f : 0000:00:08.0 70005400-7000540f : forcedeth 70005800-700058ff : 0000:00:08.0 70005800-700058ff : forcedeth 70005c00-70005c0f : 0000:00:09.0 70005c00-70005c0f : forcedeth 70006000-70006fff : 0000:00:05.0 70006000-70006fff : sata_nv 70007000-70007fff : 0000:00:05.1 70007000-70007fff : sata_nv 70008000-70008fff : 0000:00:05.2 70008000-70008fff : sata_nv 70009000-70009fff : 0000:00:08.0 70009000-70009fff : forcedeth 7000a000-7000a0ff : 0000:00:09.0 7000a000-7000a0ff : forcedeth 7000b000-7000bfff : 0000:00:09.0 7000b000-7000bfff : forcedeth 70100000-701fffff : PCI Bus #01 70100000-70103fff : 0000:01:05.0 70104000-701047ff : 0000:01:05.0 70104000-701047ff : ohci1394 70200000-702fffff : PCI Bus #03 70200000-7020007f : 0000:03:00.1 70200000-70200027 : shpchp 70300000-72ffffff : PCI Bus #06 71000000-71ffffff : 0000:06:00.0 72000000-72ffffff : 0000:06:00.0 80000000-8fffffff : PCI Bus #06 80000000-8fffffff : 0000:06:00.0 80000000-8fffffff : vesafb 90000000-90000fff : 0000:80:01.0 90100000-bfffffff : PCI Bus #81 90100000-9011ffff : 0000:81:00.0 90200000-bfffffff : PCI Bus #82 90200000-bfffffff : PCI Bus #85 a0000000-bfffffff : 0000:85:00.0 c0000000-c01fffff : PCI Bus #86 c0000000-c000ffff : 0000:86:00.0 c0000000-c000ffff : mpt c0010000-c0013fff : 0000:86:00.0 c0010000-c0013fff : mpt e0000000-efffffff : reserved fec00000-fec0ffff : reserved fee00000-fee00fff : reserved fff00000-ffffffff : reserved 100000000-28fffffff : System RAM [-- Attachment #3: boot.messages --] [-- Type: application/octet-stream, Size: 26474 bytes --] Linux version 2.6.25-pae (root@hurle-bise) (gcc version 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] (SUSE Linux) ) #10 SMP PREEMPT Fri Sep 19 12:51:00 CEST 2008 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009d800 (usable) BIOS-e820: 000000000009d800 - 00000000000a0000 (reserved) BIOS-e820: 00000000000ce000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000006fef0000 (usable) BIOS-e820: 000000006fef0000 - 000000006fefe000 (ACPI data) BIOS-e820: 000000006fefe000 - 000000006ff80000 (ACPI NVS) BIOS-e820: 000000006ff80000 - 0000000070000000 (reserved) BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved) BIOS-e820: 0000000100000000 - 0000000290000000 (usable) 10064MB HIGHMEM available. 432MB LOWMEM available. Scan SMP from c0000000 for 1024 bytes. Scan SMP from c009fc00 for 1024 bytes. Scan SMP from c00f0000 for 65536 bytes. found SMP MP-table at [c00f6f20] 000f6f20 NX (Execute Disable) protection: active Entering add_active_range(0, 0, 2686976) 0 entries of 256 used Zone PFN ranges: DMA 0 -> 4096 Normal 4096 -> 110592 HighMem 110592 -> 2686976 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0 -> 2686976 On node 0 totalpages: 2686976 DMA zone: 32 pages used for memmap DMA zone: 0 pages reserved DMA zone: 4064 pages, LIFO batch:0 Normal zone: 832 pages used for memmap Normal zone: 105664 pages, LIFO batch:31 HighMem zone: 20128 pages used for memmap HighMem zone: 2556256 pages, LIFO batch:31 Movable zone: 0 pages used for memmap DMI present. Using APIC driver default Detected use of extended apic ids on hypertransport bus Detected use of extended apic ids on hypertransport bus Intel MultiProcessor Specification v1.4 Virtual Wire compatibility mode. OEM ID: Tyan Product ID: S2918 APIC at: 0xFEE00000 Processor #0 15:1 APIC version 16 Processor #1 15:1 APIC version 16 Processor #2 15:1 APIC version 16 Processor #3 15:1 APIC version 16 I/O APIC #4 Version 17 at 0xFEC00000. I/O APIC #5 Version 17 at 0x90000000. Enabling APIC mode: Flat. Using 2 I/O APICs Processors: 4 Allocating PCI resources starting at 78000000 (gap: 70000000:70000000) Built 1 zonelists in Zone order, mobility grouping on. Total pages: 2665984 Kernel command line: vga=0x31a xeno-nucleus.xenomai_gid=1000 noapic vmalloc=0x25000000 mapped APIC to ffffb000 (fee00000) mapped IOAPIC to ffffa000 (fec00000) mapped IOAPIC to ffff9000 (90000000) Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Initializing CPU#0 PID hash table entries: 2048 (order: 11, 8192 bytes) Detected 2211.368 MHz processor. I-pipe 2.0-09: pipeline enabled. spurious 8259A interrupt: IRQ7. Console: colour dummy device 80x25 console [tty0] enabled Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Memory: 8288124k/10747904k available (1973k kernel code, 98200k reserved, 1027k data, 232k init, 7945152k highmem) virtual kernel memory layout: fixmap : 0xff939000 - 0xfffff000 (6936 kB) pkmap : 0xff400000 - 0xff600000 (2048 kB) vmalloc : 0xdb800000 - 0xff3fe000 ( 571 MB) lowmem : 0xc0000000 - 0xdb000000 ( 432 MB) .init : 0xc03f6000 - 0xc0430000 ( 232 kB) .data : 0xc02ed7b9 - 0xc03ee73c (1027 kB) .text : 0xc0100000 - 0xc02ed7b9 (1973 kB) Checking if this processor honours the WP bit even in supervisor mode...Ok. CPA: page pool initialized 1 of 1 pages preallocated Calibrating delay using timer specific routine.. 4424.81 BogoMIPS (lpj=8849630) Security Framework initialized Capability LSM initialized Mount-cache hash table entries: 512 CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 1024K (64 bytes/line) CPU 0(2) -> Core 0 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. Compat vDSO mapped to ffffe000. Checking 'hlt' instruction... OK. CPU0: AMD Dual-Core AMD Opteron(tm) Processor 2214 stepping 02 Booting processor 1/1 ip 2000 Initializing CPU#1 Calibrating delay using timer specific routine.. 4423.03 BogoMIPS (lpj=8846079) CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 1024K (64 bytes/line) CPU 1(2) -> Core 1 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#1. CPU1: AMD Dual-Core AMD Opteron(tm) Processor 2214 stepping 02 Booting processor 2/2 ip 2000 Initializing CPU#2 Calibrating delay using timer specific routine.. 4423.03 BogoMIPS (lpj=8846079) CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 1024K (64 bytes/line) CPU 2(2) -> Core 0 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#2. CPU2: AMD Dual-Core AMD Opteron(tm) Processor 2214 stepping 02 Booting processor 3/3 ip 2000 Initializing CPU#3 Calibrating delay using timer specific routine.. 4423.04 BogoMIPS (lpj=8846086) CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 1024K (64 bytes/line) CPU 3(2) -> Core 1 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#3. CPU3: AMD Dual-Core AMD Opteron(tm) Processor 2214 stepping 02 Total of 4 processors activated (17693.93 BogoMIPS). Brought up 4 CPUs CPU0 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 CPU1 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 CPU2 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 CPU3 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 net_namespace: 548 bytes NET: Registered protocol family 16 PCI: PCI BIOS revision 2.10 entry at 0xfd504, last bus=135 PCI: Using configuration type 1 Setting up standard PCI resources Linux Plug and Play Support v0.97 (c) Adam Belay PnPBIOS: Scanning system for PnP BIOS support... PnPBIOS: Found PnP BIOS installation structure at 0xc00f6fc0 PnPBIOS: PnP BIOS version 1.0, entry 0xe523:0x97ec, dseg 0x400 PNPBIOS fault.. attempting recovery. PnPBIOS: Warning! Your PnP BIOS caused a fatal error. Attempting to continue PnPBIOS: You may need to reboot with the "pnpbios=off" option to operate stably PnPBIOS: Check with your vendor for an updated BIOS PnPBIOS: dev_node_info: unexpected status 0x28 PnPBIOS: Unable to get node info. Aborting. PCI: Probing PCI hardware PCI: Probing PCI hardware (bus 00) PCI: Transparent bridge - 0000:00:06.0 PCI: Discovered peer bus 80 PCI: Bridge: 0000:00:06.0 IO window: disabled. MEM window: 0x70100000-0x701fffff PREFETCH window: disabled. PCI: Bridge: 0000:00:0a.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:03:00.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:03:00.1 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:00:0d.0 IO window: disabled. MEM window: 0x70200000-0x702fffff PREFETCH window: disabled. PCI: Bridge: 0000:00:0f.0 IO window: 6000-6fff MEM window: 0x70300000-0x72ffffff PREFETCH window: 0x0000000080000000-0x000000008fffffff PCI: Setting latency timer of device 0000:00:06.0 to 64 PCI: Setting latency timer of device 0000:00:0a.0 to 64 PCI: Setting latency timer of device 0000:00:0d.0 to 64 PCI: Setting latency timer of device 0000:03:00.0 to 64 PCI: Setting latency timer of device 0000:03:00.1 to 64 PCI: Setting latency timer of device 0000:00:0f.0 to 64 PCI: Bridge: 0000:82:01.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:82:04.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:82:05.0 IO window: 8000-8fff MEM window: 0x90200000-0xbfffffff PREFETCH window: disabled. PCI: Bridge: 0000:81:00.0 IO window: 8000-8fff MEM window: 0x90200000-0xbfffffff PREFETCH window: disabled. PCI: Bridge: 0000:80:0a.0 IO window: 8000-8fff MEM window: 0x90100000-0xbfffffff PREFETCH window: disabled. PCI: Bridge: 0000:80:0d.0 IO window: 9000-9fff MEM window: 0xc0000000-0xc01fffff PREFETCH window: disabled. PCI: Bridge: 0000:80:0f.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Setting latency timer of device 0000:80:0a.0 to 64 PCI: Setting latency timer of device 0000:81:00.0 to 64 PCI: Setting latency timer of device 0000:82:01.0 to 64 PCI: Setting latency timer of device 0000:82:04.0 to 64 PCI: Setting latency timer of device 0000:82:05.0 to 64 PCI: Setting latency timer of device 0000:80:0d.0 to 64 PCI: Setting latency timer of device 0000:80:0f.0 to 64 NET: Registered protocol family 2 IP route cache hash table entries: 16384 (order: 4, 65536 bytes) TCP established hash table entries: 65536 (order: 7, 524288 bytes) TCP bind hash table entries: 65536 (order: 7, 524288 bytes) TCP: Hash tables configured (established 65536 bind 65536) TCP reno registered Unpacking initramfs... done Freeing initrd memory: 9156k freed Machine check exception polling timer started. audit: initializing netlink socket (disabled) type=2000 audit(1227526528.000:1): initialized I-pipe: Domain Xenomai registered. Xenomai: hal/i386 started. Xenomai: real-time nucleus v2.4.5 (Overdriver) loaded. Xenomai: starting native API services. Xenomai: starting POSIX services. Xenomai: starting RTDM services. Xenomai: starting VxWorks services. highmem bounce pool size: 64 pages Total HugeTLB memory allocated, 0 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered (default) pci 0000:00:00.0: Enabling HT MSI Mapping pci 0000:80:00.0: Enabling HT MSI Mapping Clocksource tsc unstable (delta = 199633768 ns) pci 0000:00:02.1: EHCI: BIOS handoff failed (BIOS bug?) 01010001 pci 0000:00:05.0: Enabling HT MSI Mapping pci 0000:00:05.1: Enabling HT MSI Mapping pci 0000:00:05.2: Enabling HT MSI Mapping pci 0000:00:06.0: Enabling HT MSI Mapping pci 0000:00:06.1: Enabling HT MSI Mapping pci 0000:00:08.0: Enabling HT MSI Mapping pci 0000:00:09.0: Enabling HT MSI Mapping pci 0000:00:0a.0: Enabling HT MSI Mapping pci 0000:80:0a.0: Enabling HT MSI Mapping pci 0000:00:0d.0: Enabling HT MSI Mapping pci 0000:80:0d.0: Enabling HT MSI Mapping pci 0000:00:0f.0: Enabling HT MSI Mapping pci 0000:80:0f.0: Enabling HT MSI Mapping pci 0000:06:00.0: Boot video device PCI: Setting latency timer of device 0000:00:0a.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:0a.0:pcie00] PCI: Setting latency timer of device 0000:00:0d.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:0d.0:pcie00] PCI: Setting latency timer of device 0000:00:0f.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:0f.0:pcie00] PCI: Setting latency timer of device 0000:80:0a.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:80:0a.0:pcie00] PCI: Setting latency timer of device 0000:80:0d.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:80:0d.0:pcie00] PCI: Setting latency timer of device 0000:80:0f.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:80:0f.0:pcie00] PCI: Setting latency timer of device 0000:81:00.0 to 64 assign_interrupt_mode Found MSI capability PCI: Setting latency timer of device 0000:82:01.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:82:01.0:pcie22] PCI: Setting latency timer of device 0000:82:04.0 to 64 assign_interrupt_mode Found MSI capability PCI: Setting latency timer of device 0000:82:05.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:82:05.0:pcie22] vesafb: framebuffer at 0x80000000, mapped to 0xdb880000, using 5120k, total 262144k vesafb: mode is 1280x1024x16, linelength=2560, pages=1 vesafb: protected mode interface info at c000:b980 vesafb: pmi: set display start = c00cb9b6, set palette = c00cba20 vesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da vesafb: scrolling: redraw vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0 Console: switching to colour frame buffer device 160x64 fb0: VESA VGA frame buffer device isapnp: Scanning for PnP cards... isapnp: No Plug & Play device found Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A Floppy drive(s): fd0 is 1.44M FDC 0 is a post-1991 82077 PNP: No PS/2 controller found. Probing ports directly. serio: i8042 KBD port at 0x60,0x64 irq 1 mice: PS/2 mouse device common for all mice input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0 NET: Registered protocol family 1 Using IPI No-Shortcut mode registered taskstats version 1 Freeing unused kernel memory: 232k freed Write protecting the kernel read-only data: 796k SCSI subsystem initialized Fusion MPT base driver 3.04.06 Copyright (c) 1999-2007 LSI Corporation Fusion MPT SAS Host driver 3.04.06 mptbase: ioc0: Initiating bringup ioc0: LSISAS1068E B1: Capabilities={Initiator} PCI: Setting latency timer of device 0000:86:00.0 to 64 scsi0 : ioc0: LSISAS1068E B1, FwRev=010a0500h, Ports=1, MaxQ=511, IRQ=10 libata version 3.00 loaded. sata_nv 0000:00:05.0: version 3.5 PCI: Setting latency timer of device 0000:00:05.0 to 64 scsi1 : sata_nv scsi2 : sata_nv ata1: SATA max UDMA/133 cmd 0x9f0 ctl 0xbf0 bmdma 0x4890 irq 10 ata2: SATA max UDMA/133 cmd 0x970 ctl 0xb70 bmdma 0x4898 irq 10 ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata1.00: ATAPI: Optiarc DVD RW AD-7170S, 1.82, max UDMA/33 ata1.00: configured for UDMA/33 ata2: SATA link down (SStatus 0 SControl 300) scsi 1:0:0:0: CD-ROM Optiarc DVD RW AD-7170S 1.82 PQ: 0 ANSI: 5 PCI: Enabling device 0000:00:05.1 (0005 -> 0007) PCI: Setting latency timer of device 0000:00:05.1 to 64 scsi3 : sata_nv scsi4 : sata_nv ata3: SATA max UDMA/133 cmd 0x9e0 ctl 0xbe0 bmdma 0x48c0 irq 11 ata4: SATA max UDMA/133 cmd 0x960 ctl 0xb60 bmdma 0x48c8 irq 11 ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata3.00: ATA-7: ST3160815AS, 3.AAA, max UDMA/133 ata3.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 0/32) ata3.00: configured for UDMA/133 ata4: SATA link down (SStatus 0 SControl 300) scsi 3:0:0:0: Direct-Access ATA ST3160815AS 3.AA PQ: 0 ANSI: 5 PCI: Setting latency timer of device 0000:00:05.2 to 64 scsi5 : sata_nv scsi6 : sata_nv ata5: SATA max UDMA/133 cmd 0x4c00 ctl 0x48f4 bmdma 0x48e0 irq 10 ata6: SATA max UDMA/133 cmd 0x48f8 ctl 0x48f0 bmdma 0x48e8 irq 10 ata5: SATA link down (SStatus 0 SControl 300) ata6: SATA link down (SStatus 0 SControl 300) pata_amd 0000:00:04.0: version 0.3.10 PCI: Setting latency timer of device 0000:00:04.0 to 64 scsi7 : pata_amd scsi8 : pata_amd ata7: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x4880 irq 14 ata8: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x4888 irq 15 ata7: port disabled. ignoring. ata8: port disabled. ignoring. BIOS EDD facility v0.16 2004-Jun-25, 6 devices found usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub Driver 'sd' needs updating - please use bus_type methods sd 3:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB) sd 3:0:0:0: [sda] Write Protect is off usbcore: registered new device driver usb sd 3:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 3:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sd 3:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB) ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver PCI: Setting latency timer of device 0000:00:02.0 to 64 ohci_hcd 0000:00:02.0: OHCI Host Controller ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1 ohci_hcd 0000:00:02.0: irq 7, io mem 0x70004000 sd 3:0:0:0: [sda] Write Protect is off sd 3:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 3:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 10 ports detected sda: sda1 sda2 sda3 sda4 sd 3:0:0:0: [sda] Attached SCSI disk usb usb1: New USB device found, idVendor=1d6b, idProduct=0001 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: OHCI Host Controller usb usb1: Manufacturer: Linux 2.6.25-pae ohci_hcd usb usb1: SerialNumber: 0000:00:02.0 PCI: Setting latency timer of device 0000:00:02.1 to 64 ehci_hcd 0000:00:02.1: EHCI Host Controller ehci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 2 ehci_hcd 0000:00:02.1: debug port 1 PCI: cache line size of 64 is not supported by device 0000:00:02.1 ehci_hcd 0000:00:02.1: irq 5, io mem 0x70005000 ehci_hcd 0000:00:02.1: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 usb usb2: configuration #1 chosen from 1 choice hub 2-0:1.0: USB hub found hub 2-0:1.0: 10 ports detected usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: EHCI Host Controller usb usb2: Manufacturer: Linux 2.6.25-pae ehci_hcd usb usb2: SerialNumber: 0000:00:02.1 usb 1-9: new low speed USB device using ohci_hcd and address 2 usb 1-9: configuration #1 chosen from 1 choice usb 1-9: New USB device found, idVendor=046d, idProduct=c018 usb 1-9: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 1-9: Product: USB Optical Mouse usb 1-9: Manufacturer: Logitech usbcore: registered new interface driver hiddev input: Logitech USB Optical Mouse as /devices/pci0000:00/0000:00:02.0/usb1/1-9/1-9:1.0/input/input1 input,hidraw0: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-0000:00:02.0-9 usbcore: registered new interface driver usbhid drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver kjournald starting. Commit interval 5 seconds EXT3 FS on sda3, internal journal EXT3-fs: mounted filesystem with ordered data mode. pci_hotplug: PCI Hot Plug PCI Core version: 0.5 scsi 1:0:0:0: Attached scsi generic sg0 type 5 sd 3:0:0:0: Attached scsi generic sg1 type 0 forcedeth: Reverse Engineered nForce ethernet driver. Version 0.61. PCI: Setting latency timer of device 0000:00:08.0 to 64 Driver 'sr' needs updating - please use bus_type methods sr0: scsi3-mmc drive: 48x/48x writer dvd-ram cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20 sr 1:0:0:0: Attached scsi CD-ROM sr0 forcedeth 0000:00:08.0: ifname eth0, PHY OUI 0x5043 @ 0, addr 00:e0:81:73:25:f7 forcedeth 0000:00:08.0: highdma csum vlan pwrctl mgmt timirq gbit lnktim msi desc-v3 ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[70104000-701047ff] Max Packet=[2048] IR/IT contexts=[4/8] shpchp: HPC vendor_id 1033 device_id 125 ss_vid 0 ss_did 0 i2c-adapter i2c-0: nForce2 SMBus adapter at 0x4840 i2c-adapter i2c-1: nForce2 SMBus adapter at 0x4800 shpchp: Standard Hot Plug PCI Controller Driver version: 0.4 i2c-adapter i2c-2: nForce2 SMBus adapter at 0x7440 PCI: Setting latency timer of device 0000:00:09.0 to 64 i2c-adapter i2c-3: nForce2 SMBus adapter at 0x7400 forcedeth 0000:00:09.0: ifname eth1, PHY OUI 0x5043 @ 1, addr 00:e0:81:73:25:f8 forcedeth 0000:00:09.0: highdma csum vlan pwrctl mgmt timirq gbit lnktim msi desc-v3 PCI: Setting latency timer of device 0000:00:06.1 to 64 hda_codec: Unknown model for ALC262, trying auto-probe from BIOS... ALSA sound/pci/hda/hda_codec.c:2860: autoconfig: line_outs=1 (0x15/0x0/0x0/0x0/0x0) ALSA sound/pci/hda/hda_codec.c:2864: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) ALSA sound/pci/hda/hda_codec.c:2868: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0) ALSA sound/pci/hda/hda_codec.c:2869: mono: mono_out=0x16 ALSA sound/pci/hda/hda_codec.c:2877: inputs: mic=0x18, fmic=0x19, line=0x1a, fline=0x0, cd=0x0, aux=0x0 Adding 12586916k swap on /dev/sda2. Priority:-1 extents:1 across:12586916k ieee1394: Host added: ID:BUS[0-00:1023] GUID[00e0810000278c92] device-mapper: uevent: version 1.0.3 device-mapper: ioctl: 4.13.0-ioctl (2007-10-18) initialised: dm-devel@redhat.com loop: module loaded kjournald starting. Commit interval 5 seconds EXT3 FS on sda1, internal journal EXT3-fs: mounted filesystem with ordered data mode. kjournald starting. Commit interval 5 seconds EXT3 FS on sda4, internal journal EXT3-fs: mounted filesystem with ordered data mode. fuse init (API version 7.9) ip6_tables: (C) 2000-2006 Netfilter Core Team ip_tables: (C) 2000-2006 Netfilter Core Team RPC: Registered udp transport module. RPC: Registered tcp transport module. CPU0 attaching NULL sched-domain. CPU1 attaching NULL sched-domain. CPU2 attaching NULL sched-domain. CPU3 attaching NULL sched-domain. CPU0 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 CPU1 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 CPU2 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 CPU3 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 rpcbind: server timor not responding, timed out rpcbind: server timor not responding, timed out NET: Registered protocol family 17 Uniform Multi-Platform E-IDE driver ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx st: Version 20080221, fixed bufsize 32768, s/g segs 256 Driver 'st' needs updating - please use bus_type methods end_request: I/O error, dev fd0, sector 0 end_request: I/O error, dev fd0, sector 0 ppdev: user-space parallel port driver lp: driver loaded but no devices found lp: driver loaded but no devices found lp: driver loaded but no devices found end_request: I/O error, dev fd0, sector 0 end_request: I/O error, dev fd0, sector 0 end_request: I/O error, dev fd0, sector 0 end_request: I/O error, dev fd0, sector 0 rpcbind: server timor not responding, timed out rpcbind: server timor not responding, timed out vxworks_tick_time_module: module license 'unspecified' taints kernel. vxworks_tick_time_module : init_module PEV1100 MSI enabled : pev irq = 211 open_rt : my_context value : 0xda2e1028 open_rt : handle value : 0x0 ------------[ cut here ]------------ kernel BUG at kernel/ipipe/core.c:323! invalid opcode: 0000 [#1] PREEMPT SMP Modules linked in: vxworks_tick_time_module(P) lp parport_pc ppdev parport st ide_disk ide_cd_mod ide_core af_packet joydev nfs lockd nfs_acl sunrpc autofs4 snd_pcm_oss snd_mixer_oss snd_seq binfmt_misc snd_seq_device iptable_filter ip_tables ip6_tables x_tables fuse loop dm_mod snd_hda_intel snd_pcm snd_timer snd_page_alloc snd_hwdep snd ohci1394 sr_mod ieee1394 shpchp i2c_nforce2 i2c_core forcedeth sg pci_hotplug soundcore cdrom k8temp usbhid hid ff_memless ehci_hcd ohci_hcd sd_mod usbcore edd ext3 mbcache jbd pata_amd sata_nv libata mptsas mptscsih mptbase scsi_transport_sas scsi_mod [last unloaded: parport_pc] Pid: 12492, comm: tick Tainted: P (2.6.25-pae #10) EIP: 0060:[<c0150a81>] EFLAGS: 00010006 CPU: 0 EIP is at __ipipe_restore_root+0x1a/0x3f EAX: c042c574 EBX: 80850000 ECX: 00000001 EDX: 05de7000 ESI: 0000004c EDI: 00000000 EBP: d94e7cd4 ESP: d94e7cd4 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process tick (pid: 12492, ti=d94e6000 task=d89f50e0 task.ti=d94e6000)<0> I-pipe domain Linux Stack: d94e7cdc c02e9519 d94e7cf0 c02786d8 c03d8e9c 00000085 d94e7d44 d94e7d14 c0279732 0000004c 00000004 d94e7d44 00000000 00000000 da0c1000 0000004c d94e7d2c c02797b0 0000004c 00000004 d94e7d44 c03d8f00 d94e7d54 c021a89c Call Trace: [<c02e9519>] ? _spin_unlock_irqrestore+0x18/0x36 [<c02786d8>] ? pci_conf1_read+0xa4/0xab [<c0279732>] ? raw_pci_read+0x4a/0x55 [<c02797b0>] ? pci_read+0x1d/0x22 [<c021a89c>] ? pci_bus_read_config_dword+0x40/0x63 [<c0221b93>] ? read_msi_msg+0x44/0xbf [<c0110970>] ? set_msi_irq_affinity+0x89/0xd0 [<c011316d>] ? __ipipe_set_irq_affinity+0xbd/0xd1 [<c014feb8>] ? ipipe_set_irq_affinity+0x41/0x5d [<c0154a43>] ? xnintr_attach+0x98/0x117 [<c0186552>] ? rtdm_irq_request+0x23/0x49 [<dc711022>] ? irq_tick_handler+0x0/0x14 [vxworks_tick_time_module] [<dc71132e>] ? open_rt+0x82/0xb4 [vxworks_tick_time_module] [<c0185911>] ? __rt_dev_open+0x8d/0x118 [<c01875d8>] ? sys_rtdm_open+0x46/0x55 [<c0180030>] ? mq_getattr+0x106/0x158 [<c0161e0d>] ? hisyscall_event+0x137/0x256 [<c015053e>] ? __ipipe_dispatch_event+0xc6/0x1a3 [<c0161cd6>] ? hisyscall_event+0x0/0x256 [<c0112e37>] ? __ipipe_syscall_root+0x7f/0x112 [<c0104a9d>] ? system_call+0x29/0x4a ======================= Code: 7c 02 04 00 74 08 83 c8 ff e8 56 f7 ff ff fb 5d c3 55 89 c1 64 8b 15 28 a1 42 c0 b8 74 c5 42 c0 89 e5 81 3c 10 80 71 4a c0 74 04 <0f> 0b eb fe 85 c9 74 16 9c fa 64 a1 28 a1 42 c0 8d 80 14 b2 42 EIP: [<c0150a81>] __ipipe_restore_root+0x1a/0x3f SS:ESP 0068:d94e7cd4 ---[ end trace ba919155247de549 ]--- note: tick[12492] exited with preempt_count 2 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU 2008-11-24 16:55 ` Rubio, Martial @ 2008-11-25 13:13 ` Rubio, Martial 2008-11-29 1:24 ` Jan Kiszka 0 siblings, 1 reply; 8+ messages in thread From: Rubio, Martial @ 2008-11-25 13:13 UTC (permalink / raw) To: Jan Kiszka; +Cc: jeanfrancois.gilot, xenomai, Dupeyrou, Gilles [-- Attachment #1: Type: text/plain, Size: 5896 bytes --] Hello ... ... I apologize : pci_bus_read_config_word is an old 32-bit access routine ... Sorry for my great haste. If I disable CONFIG_PCI_MSI, eth0 is plugged now on a classical PCI IRQ vector And the init part of PEV1100 (my external PCIe device) does not work (it's normal) So CONFIG_PCI_MSI is mandatory . About PEV1100 after pci_msi_enable (allways in init part) no source of interrupt is still enabled ... So registration can be done (rtdm ...) . BUT : are the MSI interrupts (eth0 & PEV1100) are rightly dispatched ??? By viewing attached file, the last function seems to be __ipipe_restore_root And a few lines before irq_tick_handler+0x0/0x14 [vxworks_tick_time_module]* As if an interrupt source of PEV1100 has allready been enabled (obviously no). I think that MSI interrupt management is unable to make a difference between eth0 and another PCIe device MSI(coming from vector 212 OR vector 211). If I'm lucky is it fixed in 2.6.26.7 + ipipe-2.0-16 ? *vxworks_tick_time_module : it's my PEV1100 interrupt handler (you know now why I'm using Xenomai with Vx skins and in a first time working with a hal/i386 arch : 32 bit) Best regards Martial -----Original Message----- From: Rubio, Martial Sent: Monday, November 24, 2008 5:55 PM To: 'Jan Kiszka' Cc: xenomai@xenomai.org; jeanfrancois.gilot@domain.hid; Dupeyrou, Gilles Subject: RE: External PCIe device: MSI interrupt install hangs up the CPU Hello everybody ... Find attached text files which seems to be very useful about my CPU hanging Perharps a problem of detection of an external dev PCIe with only MSI 64-bit access Capability (pci_bus_read_config_dword instead of pci_bus_read_config_word in pci/msi.c) with a machine which has been configured in a 32-bit mode (mandatory in my case) ? What do you think of that? ... And if TRUE what to do (it's a question for J.F) Regards to all Martial -----Original Message----- From: Jan Kiszka [mailto:jan.kiszka@domain.hid] Sent: Friday, November 21, 2008 5:46 PM To: Rubio, Martial Cc: xenomai@xenomai.org; jeanfrancois.gilot@domain.hid; Dupeyrou, Gilles Subject: Re: External PCIe device: MSI interrupt install hangs up the CPU Rubio, Martial wrote: > Hello everybody > > I'm working with following config : > > CPU (0=>3) AMD Dual Core AMD Opteron > Linux version 2.6.25-pae 2.6.25 comes with the risk of missing relevant fixes that went into .26 and later. Do you have a chance to update? 2.6.27 is a bit fresh, 2.6.26.7 + ipipe-2.0-16 would be a conservative approach right now. > Xenomai : hal / i386 > Xenomai : real time nucleus v2.4.5 > > Here's below the state of /proc/interrupts : > > in red fonts the range of PCIe(xpress)-MSI vectors : Uuh, please don't expect the reader to have HTML rendering on for a typically text-only medium like mail. Yeah, it tends to be the other way around inside companies, I know... > > hurle-bise [anaisvs](34):more /proc/interrupts > CPU0 CPU1 CPU2 CPU3 > 0: 146 0 0 0 XT-PIC-XT > timer > 1: 1039 0 0 0 XT-PIC-XT > i8042 > 2: 0 0 0 0 XT-PIC-XT > cascade > 4: 5 0 0 0 XT-PIC-XT > 5: 2 0 0 0 XT-PIC-XT > ehci_hcd:usb2 > 6: 5 0 0 0 XT-PIC-XT > floppy > 7: 16300 0 0 0 XT-PIC-XT > ohci_hcd:usb1 > 10: 155104 0 0 0 XT-PIC-XT > ioc0, sata_nv, sata_nv, ohci1394 > 11: 47305 0 0 0 XT-PIC-XT > sata_nv, HDA Intel > 14: 0 0 0 0 XT-PIC-XT > pata_amd > 15: 0 0 0 0 XT-PIC-XT > pata_amd > 212: 0 9 487 1942504 PCI-MSI-edge > eth0 > 213: 0 0 0 0 PCI-MSI-edge > shpchp > NMI: 0 0 0 0 Non-maskable > interrupts > LOC: 3722798 3722767 3722730 3722768 Local timer > interrupts > RES: 39386 37672 23570 25780 Rescheduling > interrupts > CAL: 1112 1273 1280 250 function call > interrupts > TLB: 6144 8510 6271 9025 TLB shootdowns > TRM: 0 0 0 0 Thermal event > interrupts > SPU: 0 0 0 0 Spurious interrupts > ERR: 1 > MIS: 0 > > I try to install a new MSI interrupt via rtdm package > (rtdm_irq_request) with a vector number (211) given by the call to > pci_msi_enable for the new PCIe device. Is that driver prepared to possibly receive an immediate IRQ after registration? Of course, that can only happen if the device's hardware is not explicitly configured to disable IRQ delivery. I'm asking as it is a common mistake to mixup IRQ arming and proper driver state initialization. > > The system hangs up immediatly (sometimes I can catch the stack trace > with dmesg the last reference seems to be in rt_hal package) You should try to capture a full trace via a serial console e.g., see linux/Documentation/serial-console.txt. > > If I replace (for debug only!!!) this vector number by an unused > "classical" vector number (for instance > 14 or 15) ... no problem. > > Have you allready test this kind of configuration ... if so a little > help from your part would be greatly appreciated! Another test around MSI: try to disable CONFIG_PCI_MSI and check if something changes. Jan -- Siemens AG, Corporate Technology, CT SE 2 ES-OS Corporate Competence Center Embedded Linux [-- Attachment #2: boot.messages --] [-- Type: application/octet-stream, Size: 26474 bytes --] Linux version 2.6.25-pae (root@hurle-bise) (gcc version 4.3.1 20080507 (prerelease) [gcc-4_3-branch revision 135036] (SUSE Linux) ) #10 SMP PREEMPT Fri Sep 19 12:51:00 CEST 2008 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009d800 (usable) BIOS-e820: 000000000009d800 - 00000000000a0000 (reserved) BIOS-e820: 00000000000ce000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000006fef0000 (usable) BIOS-e820: 000000006fef0000 - 000000006fefe000 (ACPI data) BIOS-e820: 000000006fefe000 - 000000006ff80000 (ACPI NVS) BIOS-e820: 000000006ff80000 - 0000000070000000 (reserved) BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved) BIOS-e820: 0000000100000000 - 0000000290000000 (usable) 10064MB HIGHMEM available. 432MB LOWMEM available. Scan SMP from c0000000 for 1024 bytes. Scan SMP from c009fc00 for 1024 bytes. Scan SMP from c00f0000 for 65536 bytes. found SMP MP-table at [c00f6f20] 000f6f20 NX (Execute Disable) protection: active Entering add_active_range(0, 0, 2686976) 0 entries of 256 used Zone PFN ranges: DMA 0 -> 4096 Normal 4096 -> 110592 HighMem 110592 -> 2686976 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0 -> 2686976 On node 0 totalpages: 2686976 DMA zone: 32 pages used for memmap DMA zone: 0 pages reserved DMA zone: 4064 pages, LIFO batch:0 Normal zone: 832 pages used for memmap Normal zone: 105664 pages, LIFO batch:31 HighMem zone: 20128 pages used for memmap HighMem zone: 2556256 pages, LIFO batch:31 Movable zone: 0 pages used for memmap DMI present. Using APIC driver default Detected use of extended apic ids on hypertransport bus Detected use of extended apic ids on hypertransport bus Intel MultiProcessor Specification v1.4 Virtual Wire compatibility mode. OEM ID: Tyan Product ID: S2918 APIC at: 0xFEE00000 Processor #0 15:1 APIC version 16 Processor #1 15:1 APIC version 16 Processor #2 15:1 APIC version 16 Processor #3 15:1 APIC version 16 I/O APIC #4 Version 17 at 0xFEC00000. I/O APIC #5 Version 17 at 0x90000000. Enabling APIC mode: Flat. Using 2 I/O APICs Processors: 4 Allocating PCI resources starting at 78000000 (gap: 70000000:70000000) Built 1 zonelists in Zone order, mobility grouping on. Total pages: 2665984 Kernel command line: vga=0x31a xeno-nucleus.xenomai_gid=1000 noapic vmalloc=0x25000000 mapped APIC to ffffb000 (fee00000) mapped IOAPIC to ffffa000 (fec00000) mapped IOAPIC to ffff9000 (90000000) Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Initializing CPU#0 PID hash table entries: 2048 (order: 11, 8192 bytes) Detected 2211.368 MHz processor. I-pipe 2.0-09: pipeline enabled. spurious 8259A interrupt: IRQ7. Console: colour dummy device 80x25 console [tty0] enabled Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) Memory: 8288124k/10747904k available (1973k kernel code, 98200k reserved, 1027k data, 232k init, 7945152k highmem) virtual kernel memory layout: fixmap : 0xff939000 - 0xfffff000 (6936 kB) pkmap : 0xff400000 - 0xff600000 (2048 kB) vmalloc : 0xdb800000 - 0xff3fe000 ( 571 MB) lowmem : 0xc0000000 - 0xdb000000 ( 432 MB) .init : 0xc03f6000 - 0xc0430000 ( 232 kB) .data : 0xc02ed7b9 - 0xc03ee73c (1027 kB) .text : 0xc0100000 - 0xc02ed7b9 (1973 kB) Checking if this processor honours the WP bit even in supervisor mode...Ok. CPA: page pool initialized 1 of 1 pages preallocated Calibrating delay using timer specific routine.. 4424.81 BogoMIPS (lpj=8849630) Security Framework initialized Capability LSM initialized Mount-cache hash table entries: 512 CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 1024K (64 bytes/line) CPU 0(2) -> Core 0 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. Compat vDSO mapped to ffffe000. Checking 'hlt' instruction... OK. CPU0: AMD Dual-Core AMD Opteron(tm) Processor 2214 stepping 02 Booting processor 1/1 ip 2000 Initializing CPU#1 Calibrating delay using timer specific routine.. 4423.03 BogoMIPS (lpj=8846079) CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 1024K (64 bytes/line) CPU 1(2) -> Core 1 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#1. CPU1: AMD Dual-Core AMD Opteron(tm) Processor 2214 stepping 02 Booting processor 2/2 ip 2000 Initializing CPU#2 Calibrating delay using timer specific routine.. 4423.03 BogoMIPS (lpj=8846079) CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 1024K (64 bytes/line) CPU 2(2) -> Core 0 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#2. CPU2: AMD Dual-Core AMD Opteron(tm) Processor 2214 stepping 02 Booting processor 3/3 ip 2000 Initializing CPU#3 Calibrating delay using timer specific routine.. 4423.04 BogoMIPS (lpj=8846086) CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 1024K (64 bytes/line) CPU 3(2) -> Core 1 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#3. CPU3: AMD Dual-Core AMD Opteron(tm) Processor 2214 stepping 02 Total of 4 processors activated (17693.93 BogoMIPS). Brought up 4 CPUs CPU0 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 CPU1 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 CPU2 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 CPU3 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 net_namespace: 548 bytes NET: Registered protocol family 16 PCI: PCI BIOS revision 2.10 entry at 0xfd504, last bus=135 PCI: Using configuration type 1 Setting up standard PCI resources Linux Plug and Play Support v0.97 (c) Adam Belay PnPBIOS: Scanning system for PnP BIOS support... PnPBIOS: Found PnP BIOS installation structure at 0xc00f6fc0 PnPBIOS: PnP BIOS version 1.0, entry 0xe523:0x97ec, dseg 0x400 PNPBIOS fault.. attempting recovery. PnPBIOS: Warning! Your PnP BIOS caused a fatal error. Attempting to continue PnPBIOS: You may need to reboot with the "pnpbios=off" option to operate stably PnPBIOS: Check with your vendor for an updated BIOS PnPBIOS: dev_node_info: unexpected status 0x28 PnPBIOS: Unable to get node info. Aborting. PCI: Probing PCI hardware PCI: Probing PCI hardware (bus 00) PCI: Transparent bridge - 0000:00:06.0 PCI: Discovered peer bus 80 PCI: Bridge: 0000:00:06.0 IO window: disabled. MEM window: 0x70100000-0x701fffff PREFETCH window: disabled. PCI: Bridge: 0000:00:0a.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:03:00.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:03:00.1 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:00:0d.0 IO window: disabled. MEM window: 0x70200000-0x702fffff PREFETCH window: disabled. PCI: Bridge: 0000:00:0f.0 IO window: 6000-6fff MEM window: 0x70300000-0x72ffffff PREFETCH window: 0x0000000080000000-0x000000008fffffff PCI: Setting latency timer of device 0000:00:06.0 to 64 PCI: Setting latency timer of device 0000:00:0a.0 to 64 PCI: Setting latency timer of device 0000:00:0d.0 to 64 PCI: Setting latency timer of device 0000:03:00.0 to 64 PCI: Setting latency timer of device 0000:03:00.1 to 64 PCI: Setting latency timer of device 0000:00:0f.0 to 64 PCI: Bridge: 0000:82:01.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:82:04.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Bridge: 0000:82:05.0 IO window: 8000-8fff MEM window: 0x90200000-0xbfffffff PREFETCH window: disabled. PCI: Bridge: 0000:81:00.0 IO window: 8000-8fff MEM window: 0x90200000-0xbfffffff PREFETCH window: disabled. PCI: Bridge: 0000:80:0a.0 IO window: 8000-8fff MEM window: 0x90100000-0xbfffffff PREFETCH window: disabled. PCI: Bridge: 0000:80:0d.0 IO window: 9000-9fff MEM window: 0xc0000000-0xc01fffff PREFETCH window: disabled. PCI: Bridge: 0000:80:0f.0 IO window: disabled. MEM window: disabled. PREFETCH window: disabled. PCI: Setting latency timer of device 0000:80:0a.0 to 64 PCI: Setting latency timer of device 0000:81:00.0 to 64 PCI: Setting latency timer of device 0000:82:01.0 to 64 PCI: Setting latency timer of device 0000:82:04.0 to 64 PCI: Setting latency timer of device 0000:82:05.0 to 64 PCI: Setting latency timer of device 0000:80:0d.0 to 64 PCI: Setting latency timer of device 0000:80:0f.0 to 64 NET: Registered protocol family 2 IP route cache hash table entries: 16384 (order: 4, 65536 bytes) TCP established hash table entries: 65536 (order: 7, 524288 bytes) TCP bind hash table entries: 65536 (order: 7, 524288 bytes) TCP: Hash tables configured (established 65536 bind 65536) TCP reno registered Unpacking initramfs... done Freeing initrd memory: 9156k freed Machine check exception polling timer started. audit: initializing netlink socket (disabled) type=2000 audit(1227526528.000:1): initialized I-pipe: Domain Xenomai registered. Xenomai: hal/i386 started. Xenomai: real-time nucleus v2.4.5 (Overdriver) loaded. Xenomai: starting native API services. Xenomai: starting POSIX services. Xenomai: starting RTDM services. Xenomai: starting VxWorks services. highmem bounce pool size: 64 pages Total HugeTLB memory allocated, 0 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered (default) pci 0000:00:00.0: Enabling HT MSI Mapping pci 0000:80:00.0: Enabling HT MSI Mapping Clocksource tsc unstable (delta = 199633768 ns) pci 0000:00:02.1: EHCI: BIOS handoff failed (BIOS bug?) 01010001 pci 0000:00:05.0: Enabling HT MSI Mapping pci 0000:00:05.1: Enabling HT MSI Mapping pci 0000:00:05.2: Enabling HT MSI Mapping pci 0000:00:06.0: Enabling HT MSI Mapping pci 0000:00:06.1: Enabling HT MSI Mapping pci 0000:00:08.0: Enabling HT MSI Mapping pci 0000:00:09.0: Enabling HT MSI Mapping pci 0000:00:0a.0: Enabling HT MSI Mapping pci 0000:80:0a.0: Enabling HT MSI Mapping pci 0000:00:0d.0: Enabling HT MSI Mapping pci 0000:80:0d.0: Enabling HT MSI Mapping pci 0000:00:0f.0: Enabling HT MSI Mapping pci 0000:80:0f.0: Enabling HT MSI Mapping pci 0000:06:00.0: Boot video device PCI: Setting latency timer of device 0000:00:0a.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:0a.0:pcie00] PCI: Setting latency timer of device 0000:00:0d.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:0d.0:pcie00] PCI: Setting latency timer of device 0000:00:0f.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:0f.0:pcie00] PCI: Setting latency timer of device 0000:80:0a.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:80:0a.0:pcie00] PCI: Setting latency timer of device 0000:80:0d.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:80:0d.0:pcie00] PCI: Setting latency timer of device 0000:80:0f.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:80:0f.0:pcie00] PCI: Setting latency timer of device 0000:81:00.0 to 64 assign_interrupt_mode Found MSI capability PCI: Setting latency timer of device 0000:82:01.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:82:01.0:pcie22] PCI: Setting latency timer of device 0000:82:04.0 to 64 assign_interrupt_mode Found MSI capability PCI: Setting latency timer of device 0000:82:05.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:82:05.0:pcie22] vesafb: framebuffer at 0x80000000, mapped to 0xdb880000, using 5120k, total 262144k vesafb: mode is 1280x1024x16, linelength=2560, pages=1 vesafb: protected mode interface info at c000:b980 vesafb: pmi: set display start = c00cb9b6, set palette = c00cba20 vesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da vesafb: scrolling: redraw vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0 Console: switching to colour frame buffer device 160x64 fb0: VESA VGA frame buffer device isapnp: Scanning for PnP cards... isapnp: No Plug & Play device found Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A Floppy drive(s): fd0 is 1.44M FDC 0 is a post-1991 82077 PNP: No PS/2 controller found. Probing ports directly. serio: i8042 KBD port at 0x60,0x64 irq 1 mice: PS/2 mouse device common for all mice input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0 NET: Registered protocol family 1 Using IPI No-Shortcut mode registered taskstats version 1 Freeing unused kernel memory: 232k freed Write protecting the kernel read-only data: 796k SCSI subsystem initialized Fusion MPT base driver 3.04.06 Copyright (c) 1999-2007 LSI Corporation Fusion MPT SAS Host driver 3.04.06 mptbase: ioc0: Initiating bringup ioc0: LSISAS1068E B1: Capabilities={Initiator} PCI: Setting latency timer of device 0000:86:00.0 to 64 scsi0 : ioc0: LSISAS1068E B1, FwRev=010a0500h, Ports=1, MaxQ=511, IRQ=10 libata version 3.00 loaded. sata_nv 0000:00:05.0: version 3.5 PCI: Setting latency timer of device 0000:00:05.0 to 64 scsi1 : sata_nv scsi2 : sata_nv ata1: SATA max UDMA/133 cmd 0x9f0 ctl 0xbf0 bmdma 0x4890 irq 10 ata2: SATA max UDMA/133 cmd 0x970 ctl 0xb70 bmdma 0x4898 irq 10 ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata1.00: ATAPI: Optiarc DVD RW AD-7170S, 1.82, max UDMA/33 ata1.00: configured for UDMA/33 ata2: SATA link down (SStatus 0 SControl 300) scsi 1:0:0:0: CD-ROM Optiarc DVD RW AD-7170S 1.82 PQ: 0 ANSI: 5 PCI: Enabling device 0000:00:05.1 (0005 -> 0007) PCI: Setting latency timer of device 0000:00:05.1 to 64 scsi3 : sata_nv scsi4 : sata_nv ata3: SATA max UDMA/133 cmd 0x9e0 ctl 0xbe0 bmdma 0x48c0 irq 11 ata4: SATA max UDMA/133 cmd 0x960 ctl 0xb60 bmdma 0x48c8 irq 11 ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) ata3.00: ATA-7: ST3160815AS, 3.AAA, max UDMA/133 ata3.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 0/32) ata3.00: configured for UDMA/133 ata4: SATA link down (SStatus 0 SControl 300) scsi 3:0:0:0: Direct-Access ATA ST3160815AS 3.AA PQ: 0 ANSI: 5 PCI: Setting latency timer of device 0000:00:05.2 to 64 scsi5 : sata_nv scsi6 : sata_nv ata5: SATA max UDMA/133 cmd 0x4c00 ctl 0x48f4 bmdma 0x48e0 irq 10 ata6: SATA max UDMA/133 cmd 0x48f8 ctl 0x48f0 bmdma 0x48e8 irq 10 ata5: SATA link down (SStatus 0 SControl 300) ata6: SATA link down (SStatus 0 SControl 300) pata_amd 0000:00:04.0: version 0.3.10 PCI: Setting latency timer of device 0000:00:04.0 to 64 scsi7 : pata_amd scsi8 : pata_amd ata7: PATA max UDMA/133 cmd 0x1f0 ctl 0x3f6 bmdma 0x4880 irq 14 ata8: PATA max UDMA/133 cmd 0x170 ctl 0x376 bmdma 0x4888 irq 15 ata7: port disabled. ignoring. ata8: port disabled. ignoring. BIOS EDD facility v0.16 2004-Jun-25, 6 devices found usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub Driver 'sd' needs updating - please use bus_type methods sd 3:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB) sd 3:0:0:0: [sda] Write Protect is off usbcore: registered new device driver usb sd 3:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 3:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sd 3:0:0:0: [sda] 312581808 512-byte hardware sectors (160042 MB) ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver PCI: Setting latency timer of device 0000:00:02.0 to 64 ohci_hcd 0000:00:02.0: OHCI Host Controller ohci_hcd 0000:00:02.0: new USB bus registered, assigned bus number 1 ohci_hcd 0000:00:02.0: irq 7, io mem 0x70004000 sd 3:0:0:0: [sda] Write Protect is off sd 3:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 3:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 10 ports detected sda: sda1 sda2 sda3 sda4 sd 3:0:0:0: [sda] Attached SCSI disk usb usb1: New USB device found, idVendor=1d6b, idProduct=0001 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: OHCI Host Controller usb usb1: Manufacturer: Linux 2.6.25-pae ohci_hcd usb usb1: SerialNumber: 0000:00:02.0 PCI: Setting latency timer of device 0000:00:02.1 to 64 ehci_hcd 0000:00:02.1: EHCI Host Controller ehci_hcd 0000:00:02.1: new USB bus registered, assigned bus number 2 ehci_hcd 0000:00:02.1: debug port 1 PCI: cache line size of 64 is not supported by device 0000:00:02.1 ehci_hcd 0000:00:02.1: irq 5, io mem 0x70005000 ehci_hcd 0000:00:02.1: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 usb usb2: configuration #1 chosen from 1 choice hub 2-0:1.0: USB hub found hub 2-0:1.0: 10 ports detected usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb2: Product: EHCI Host Controller usb usb2: Manufacturer: Linux 2.6.25-pae ehci_hcd usb usb2: SerialNumber: 0000:00:02.1 usb 1-9: new low speed USB device using ohci_hcd and address 2 usb 1-9: configuration #1 chosen from 1 choice usb 1-9: New USB device found, idVendor=046d, idProduct=c018 usb 1-9: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 1-9: Product: USB Optical Mouse usb 1-9: Manufacturer: Logitech usbcore: registered new interface driver hiddev input: Logitech USB Optical Mouse as /devices/pci0000:00/0000:00:02.0/usb1/1-9/1-9:1.0/input/input1 input,hidraw0: USB HID v1.11 Mouse [Logitech USB Optical Mouse] on usb-0000:00:02.0-9 usbcore: registered new interface driver usbhid drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver kjournald starting. Commit interval 5 seconds EXT3 FS on sda3, internal journal EXT3-fs: mounted filesystem with ordered data mode. pci_hotplug: PCI Hot Plug PCI Core version: 0.5 scsi 1:0:0:0: Attached scsi generic sg0 type 5 sd 3:0:0:0: Attached scsi generic sg1 type 0 forcedeth: Reverse Engineered nForce ethernet driver. Version 0.61. PCI: Setting latency timer of device 0000:00:08.0 to 64 Driver 'sr' needs updating - please use bus_type methods sr0: scsi3-mmc drive: 48x/48x writer dvd-ram cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20 sr 1:0:0:0: Attached scsi CD-ROM sr0 forcedeth 0000:00:08.0: ifname eth0, PHY OUI 0x5043 @ 0, addr 00:e0:81:73:25:f7 forcedeth 0000:00:08.0: highdma csum vlan pwrctl mgmt timirq gbit lnktim msi desc-v3 ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[10] MMIO=[70104000-701047ff] Max Packet=[2048] IR/IT contexts=[4/8] shpchp: HPC vendor_id 1033 device_id 125 ss_vid 0 ss_did 0 i2c-adapter i2c-0: nForce2 SMBus adapter at 0x4840 i2c-adapter i2c-1: nForce2 SMBus adapter at 0x4800 shpchp: Standard Hot Plug PCI Controller Driver version: 0.4 i2c-adapter i2c-2: nForce2 SMBus adapter at 0x7440 PCI: Setting latency timer of device 0000:00:09.0 to 64 i2c-adapter i2c-3: nForce2 SMBus adapter at 0x7400 forcedeth 0000:00:09.0: ifname eth1, PHY OUI 0x5043 @ 1, addr 00:e0:81:73:25:f8 forcedeth 0000:00:09.0: highdma csum vlan pwrctl mgmt timirq gbit lnktim msi desc-v3 PCI: Setting latency timer of device 0000:00:06.1 to 64 hda_codec: Unknown model for ALC262, trying auto-probe from BIOS... ALSA sound/pci/hda/hda_codec.c:2860: autoconfig: line_outs=1 (0x15/0x0/0x0/0x0/0x0) ALSA sound/pci/hda/hda_codec.c:2864: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) ALSA sound/pci/hda/hda_codec.c:2868: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0) ALSA sound/pci/hda/hda_codec.c:2869: mono: mono_out=0x16 ALSA sound/pci/hda/hda_codec.c:2877: inputs: mic=0x18, fmic=0x19, line=0x1a, fline=0x0, cd=0x0, aux=0x0 Adding 12586916k swap on /dev/sda2. Priority:-1 extents:1 across:12586916k ieee1394: Host added: ID:BUS[0-00:1023] GUID[00e0810000278c92] device-mapper: uevent: version 1.0.3 device-mapper: ioctl: 4.13.0-ioctl (2007-10-18) initialised: dm-devel@redhat.com loop: module loaded kjournald starting. Commit interval 5 seconds EXT3 FS on sda1, internal journal EXT3-fs: mounted filesystem with ordered data mode. kjournald starting. Commit interval 5 seconds EXT3 FS on sda4, internal journal EXT3-fs: mounted filesystem with ordered data mode. fuse init (API version 7.9) ip6_tables: (C) 2000-2006 Netfilter Core Team ip_tables: (C) 2000-2006 Netfilter Core Team RPC: Registered udp transport module. RPC: Registered tcp transport module. CPU0 attaching NULL sched-domain. CPU1 attaching NULL sched-domain. CPU2 attaching NULL sched-domain. CPU3 attaching NULL sched-domain. CPU0 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 CPU1 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 CPU2 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000004 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 CPU3 attaching sched-domain: domain 0: span 00000000,00000000,00000000,0000000f groups: 00000000,00000000,00000000,00000008 00000000,00000000,00000000,00000001 00000000,00000000,00000000,00000002 00000000,00000000,00000000,00000004 rpcbind: server timor not responding, timed out rpcbind: server timor not responding, timed out NET: Registered protocol family 17 Uniform Multi-Platform E-IDE driver ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx st: Version 20080221, fixed bufsize 32768, s/g segs 256 Driver 'st' needs updating - please use bus_type methods end_request: I/O error, dev fd0, sector 0 end_request: I/O error, dev fd0, sector 0 ppdev: user-space parallel port driver lp: driver loaded but no devices found lp: driver loaded but no devices found lp: driver loaded but no devices found end_request: I/O error, dev fd0, sector 0 end_request: I/O error, dev fd0, sector 0 end_request: I/O error, dev fd0, sector 0 end_request: I/O error, dev fd0, sector 0 rpcbind: server timor not responding, timed out rpcbind: server timor not responding, timed out vxworks_tick_time_module: module license 'unspecified' taints kernel. vxworks_tick_time_module : init_module PEV1100 MSI enabled : pev irq = 211 open_rt : my_context value : 0xda2e1028 open_rt : handle value : 0x0 ------------[ cut here ]------------ kernel BUG at kernel/ipipe/core.c:323! invalid opcode: 0000 [#1] PREEMPT SMP Modules linked in: vxworks_tick_time_module(P) lp parport_pc ppdev parport st ide_disk ide_cd_mod ide_core af_packet joydev nfs lockd nfs_acl sunrpc autofs4 snd_pcm_oss snd_mixer_oss snd_seq binfmt_misc snd_seq_device iptable_filter ip_tables ip6_tables x_tables fuse loop dm_mod snd_hda_intel snd_pcm snd_timer snd_page_alloc snd_hwdep snd ohci1394 sr_mod ieee1394 shpchp i2c_nforce2 i2c_core forcedeth sg pci_hotplug soundcore cdrom k8temp usbhid hid ff_memless ehci_hcd ohci_hcd sd_mod usbcore edd ext3 mbcache jbd pata_amd sata_nv libata mptsas mptscsih mptbase scsi_transport_sas scsi_mod [last unloaded: parport_pc] Pid: 12492, comm: tick Tainted: P (2.6.25-pae #10) EIP: 0060:[<c0150a81>] EFLAGS: 00010006 CPU: 0 EIP is at __ipipe_restore_root+0x1a/0x3f EAX: c042c574 EBX: 80850000 ECX: 00000001 EDX: 05de7000 ESI: 0000004c EDI: 00000000 EBP: d94e7cd4 ESP: d94e7cd4 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process tick (pid: 12492, ti=d94e6000 task=d89f50e0 task.ti=d94e6000)<0> I-pipe domain Linux Stack: d94e7cdc c02e9519 d94e7cf0 c02786d8 c03d8e9c 00000085 d94e7d44 d94e7d14 c0279732 0000004c 00000004 d94e7d44 00000000 00000000 da0c1000 0000004c d94e7d2c c02797b0 0000004c 00000004 d94e7d44 c03d8f00 d94e7d54 c021a89c Call Trace: [<c02e9519>] ? _spin_unlock_irqrestore+0x18/0x36 [<c02786d8>] ? pci_conf1_read+0xa4/0xab [<c0279732>] ? raw_pci_read+0x4a/0x55 [<c02797b0>] ? pci_read+0x1d/0x22 [<c021a89c>] ? pci_bus_read_config_dword+0x40/0x63 [<c0221b93>] ? read_msi_msg+0x44/0xbf [<c0110970>] ? set_msi_irq_affinity+0x89/0xd0 [<c011316d>] ? __ipipe_set_irq_affinity+0xbd/0xd1 [<c014feb8>] ? ipipe_set_irq_affinity+0x41/0x5d [<c0154a43>] ? xnintr_attach+0x98/0x117 [<c0186552>] ? rtdm_irq_request+0x23/0x49 [<dc711022>] ? irq_tick_handler+0x0/0x14 [vxworks_tick_time_module] [<dc71132e>] ? open_rt+0x82/0xb4 [vxworks_tick_time_module] [<c0185911>] ? __rt_dev_open+0x8d/0x118 [<c01875d8>] ? sys_rtdm_open+0x46/0x55 [<c0180030>] ? mq_getattr+0x106/0x158 [<c0161e0d>] ? hisyscall_event+0x137/0x256 [<c015053e>] ? __ipipe_dispatch_event+0xc6/0x1a3 [<c0161cd6>] ? hisyscall_event+0x0/0x256 [<c0112e37>] ? __ipipe_syscall_root+0x7f/0x112 [<c0104a9d>] ? system_call+0x29/0x4a ======================= Code: 7c 02 04 00 74 08 83 c8 ff e8 56 f7 ff ff fb 5d c3 55 89 c1 64 8b 15 28 a1 42 c0 b8 74 c5 42 c0 89 e5 81 3c 10 80 71 4a c0 74 04 <0f> 0b eb fe 85 c9 74 16 9c fa 64 a1 28 a1 42 c0 8d 80 14 b2 42 EIP: [<c0150a81>] __ipipe_restore_root+0x1a/0x3f SS:ESP 0068:d94e7cd4 ---[ end trace ba919155247de549 ]--- note: tick[12492] exited with preempt_count 2 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU 2008-11-25 13:13 ` Rubio, Martial @ 2008-11-29 1:24 ` Jan Kiszka 2008-11-29 10:18 ` Philippe Gerum 2008-12-01 16:33 ` Rubio, Martial 0 siblings, 2 replies; 8+ messages in thread From: Jan Kiszka @ 2008-11-29 1:24 UTC (permalink / raw) To: Rubio, Martial; +Cc: jeanfrancois.gilot, xenomai, Dupeyrou, Gilles [-- Attachment #1: Type: text/plain, Size: 4019 bytes --] Hi Martial, sorry for the late reply, but my work queue suffered from some overflows... Rubio, Martial wrote: > Hello ... > > ... I apologize : pci_bus_read_config_word is an old 32-bit access > routine ... > Sorry for my great haste. > > If I disable CONFIG_PCI_MSI, eth0 is plugged now on a classical PCI IRQ > vector > And the init part of PEV1100 (my external PCIe device) does not work > (it's normal) > > So CONFIG_PCI_MSI is mandatory . > > About PEV1100 after pci_msi_enable (allways in init part) no source of > interrupt is still enabled ... > So registration can be done (rtdm ...) . > > BUT : are the MSI interrupts (eth0 & PEV1100) are rightly dispatched ??? > > By viewing attached file, the last function seems to be > __ipipe_restore_root > And a few lines before irq_tick_handler+0x0/0x14 > [vxworks_tick_time_module]* > As if an interrupt source of PEV1100 has allready been enabled > (obviously no). The problem is that ipipe calls into Linux services (->MSI->PCI) that are not prepared for running in ipipe context: ------------[ cut here ]------------ kernel BUG at kernel/ipipe/core.c:323! invalid opcode: 0000 [#1] PREEMPT SMP Modules linked in: vxworks_tick_time_module(P) lp parport_pc ppdev parport st ide_disk ide_cd_mod ide_core af_packet joydev nfs lockd nfs_acl sunrpc autofs4 snd_pcm_oss snd_mixer_oss snd_seq binfmt_misc snd_seq_device iptable_filter ip_tables ip6_tables x_tables fuse loop dm_mod snd_hda_intel snd_pcm snd_timer snd_page_alloc snd_hwdep snd ohci1394 sr_mod ieee1394 shpchp i2c_nforce2 i2c_core forcedeth sg pci_hotplug soundcore cdrom k8temp usbhid hid ff_memless ehci_hcd ohci_hcd sd_mod usbcore edd ext3 mbcache jbd pata_amd sata_nv libata mptsas mptscsih mptbase scsi_transport_sas scsi_mod [last unloaded: parport_pc] Pid: 12492, comm: tick Tainted: P (2.6.25-pae #10) EIP: 0060:[<c0150a81>] EFLAGS: 00010006 CPU: 0 EIP is at __ipipe_restore_root+0x1a/0x3f EAX: c042c574 EBX: 80850000 ECX: 00000001 EDX: 05de7000 ESI: 0000004c EDI: 00000000 EBP: d94e7cd4 ESP: d94e7cd4 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process tick (pid: 12492, ti=d94e6000 task=d89f50e0 task.ti=d94e6000)<0> I-pipe domain Linux Stack: d94e7cdc c02e9519 d94e7cf0 c02786d8 c03d8e9c 00000085 d94e7d44 d94e7d14 c0279732 0000004c 00000004 d94e7d44 00000000 00000000 da0c1000 0000004c d94e7d2c c02797b0 0000004c 00000004 d94e7d44 c03d8f00 d94e7d54 c021a89c Call Trace: [<c02e9519>] ? _spin_unlock_irqrestore+0x18/0x36 [<c02786d8>] ? pci_conf1_read+0xa4/0xab [<c0279732>] ? raw_pci_read+0x4a/0x55 [<c02797b0>] ? pci_read+0x1d/0x22 [<c021a89c>] ? pci_bus_read_config_dword+0x40/0x63 [<c0221b93>] ? read_msi_msg+0x44/0xbf [<c0110970>] ? set_msi_irq_affinity+0x89/0xd0 [<c011316d>] ? __ipipe_set_irq_affinity+0xbd/0xd1 [<c014feb8>] ? ipipe_set_irq_affinity+0x41/0x5d [<c0154a43>] ? xnintr_attach+0x98/0x117 [<c0186552>] ? rtdm_irq_request+0x23/0x49 [<dc711022>] ? irq_tick_handler+0x0/0x14 [vxworks_tick_time_module] [<dc71132e>] ? open_rt+0x82/0xb4 [vxworks_tick_time_module] [<c0185911>] ? __rt_dev_open+0x8d/0x118 [<c01875d8>] ? sys_rtdm_open+0x46/0x55 [<c0180030>] ? mq_getattr+0x106/0x158 [<c0161e0d>] ? hisyscall_event+0x137/0x256 [<c015053e>] ? __ipipe_dispatch_event+0xc6/0x1a3 [<c0161cd6>] ? hisyscall_event+0x0/0x256 [<c0112e37>] ? __ipipe_syscall_root+0x7f/0x112 [<c0104a9d>] ? system_call+0x29/0x4a ======================= Philippe, I recall some issue that turned out to be a similar call into pci_read_config - was it resolved in any official ipipe release? However, Martial, you can likely work around it by registering the open handler of vxworks_tick_time_module only to open_nrt. That will switch the caller of rt_dev_open to secondary (Linux) mode and allow to run that service safely. Device opening is almost never time critical (and I'm planning to remove open/socket/close_rt handler for Xenomai 2.5 anyway). Jan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 257 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU 2008-11-29 1:24 ` Jan Kiszka @ 2008-11-29 10:18 ` Philippe Gerum 2008-12-01 16:33 ` Rubio, Martial 1 sibling, 0 replies; 8+ messages in thread From: Philippe Gerum @ 2008-11-29 10:18 UTC (permalink / raw) To: Jan Kiszka; +Cc: Rubio, Martial, jeanfrancois.gilot, Dupeyrou, Gilles, xenomai Jan Kiszka wrote: > Hi Martial, > > sorry for the late reply, but my work queue suffered from some overflows... > > Rubio, Martial wrote: >> Hello ... >> >> ... I apologize : pci_bus_read_config_word is an old 32-bit access >> routine ... >> Sorry for my great haste. >> >> If I disable CONFIG_PCI_MSI, eth0 is plugged now on a classical PCI IRQ >> vector >> And the init part of PEV1100 (my external PCIe device) does not work >> (it's normal) >> >> So CONFIG_PCI_MSI is mandatory . >> >> About PEV1100 after pci_msi_enable (allways in init part) no source of >> interrupt is still enabled ... >> So registration can be done (rtdm ...) . >> >> BUT : are the MSI interrupts (eth0 & PEV1100) are rightly dispatched ??? >> >> By viewing attached file, the last function seems to be >> __ipipe_restore_root >> And a few lines before irq_tick_handler+0x0/0x14 >> [vxworks_tick_time_module]* >> As if an interrupt source of PEV1100 has allready been enabled >> (obviously no). > > The problem is that ipipe calls into Linux services (->MSI->PCI) that > are not prepared for running in ipipe context: > > ------------[ cut here ]------------ > kernel BUG at kernel/ipipe/core.c:323! > invalid opcode: 0000 [#1] PREEMPT SMP > Modules linked in: vxworks_tick_time_module(P) lp parport_pc ppdev > parport st ide_disk ide_cd_mod ide_core af_packet joydev nfs lockd > nfs_acl sunrpc autofs4 snd_pcm_oss snd_mixer_oss snd_seq binfmt_misc > snd_seq_device iptable_filter ip_tables ip6_tables x_tables fuse loop > dm_mod snd_hda_intel snd_pcm snd_timer snd_page_alloc snd_hwdep snd > ohci1394 sr_mod ieee1394 shpchp i2c_nforce2 i2c_core forcedeth sg > pci_hotplug soundcore cdrom k8temp usbhid hid ff_memless ehci_hcd > ohci_hcd sd_mod usbcore edd ext3 mbcache jbd pata_amd sata_nv libata > mptsas mptscsih mptbase scsi_transport_sas scsi_mod [last unloaded: > parport_pc] > > Pid: 12492, comm: tick Tainted: P (2.6.25-pae #10) > EIP: 0060:[<c0150a81>] EFLAGS: 00010006 CPU: 0 > EIP is at __ipipe_restore_root+0x1a/0x3f > EAX: c042c574 EBX: 80850000 ECX: 00000001 EDX: 05de7000 > ESI: 0000004c EDI: 00000000 EBP: d94e7cd4 ESP: d94e7cd4 > DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 > Process tick (pid: 12492, ti=d94e6000 task=d89f50e0 task.ti=d94e6000)<0> > I-pipe domain Linux > Stack: d94e7cdc c02e9519 d94e7cf0 c02786d8 c03d8e9c 00000085 d94e7d44 > d94e7d14 > c0279732 0000004c 00000004 d94e7d44 00000000 00000000 da0c1000 > 0000004c > d94e7d2c c02797b0 0000004c 00000004 d94e7d44 c03d8f00 d94e7d54 > c021a89c > Call Trace: > [<c02e9519>] ? _spin_unlock_irqrestore+0x18/0x36 > [<c02786d8>] ? pci_conf1_read+0xa4/0xab > [<c0279732>] ? raw_pci_read+0x4a/0x55 > [<c02797b0>] ? pci_read+0x1d/0x22 > [<c021a89c>] ? pci_bus_read_config_dword+0x40/0x63 > [<c0221b93>] ? read_msi_msg+0x44/0xbf > [<c0110970>] ? set_msi_irq_affinity+0x89/0xd0 > [<c011316d>] ? __ipipe_set_irq_affinity+0xbd/0xd1 > [<c014feb8>] ? ipipe_set_irq_affinity+0x41/0x5d > [<c0154a43>] ? xnintr_attach+0x98/0x117 > [<c0186552>] ? rtdm_irq_request+0x23/0x49 > [<dc711022>] ? irq_tick_handler+0x0/0x14 [vxworks_tick_time_module] > [<dc71132e>] ? open_rt+0x82/0xb4 [vxworks_tick_time_module] > [<c0185911>] ? __rt_dev_open+0x8d/0x118 > [<c01875d8>] ? sys_rtdm_open+0x46/0x55 > [<c0180030>] ? mq_getattr+0x106/0x158 > [<c0161e0d>] ? hisyscall_event+0x137/0x256 > [<c015053e>] ? __ipipe_dispatch_event+0xc6/0x1a3 > [<c0161cd6>] ? hisyscall_event+0x0/0x256 > [<c0112e37>] ? __ipipe_syscall_root+0x7f/0x112 > [<c0104a9d>] ? system_call+0x29/0x4a > ======================= > > Philippe, I recall some issue that turned out to be a similar call into > pci_read_config - was it resolved in any official ipipe release? > Yes, this one is a well-known issue. And no, this has not been solved yet, mainly because the x86 io_apic and MSI code has been in perpetual state of flux since ages, so I did not want to fiddle with it until the kernel folks eventually made their mind about a stable implementation. I plan to address this in 2.6.28/2.6.29, depending on my work load, unless someone else picks that earlier. ATM, I-pipe generic and powerpc optimizations + Xenomai scheduling classes support drain most of my available time, unfortunately. > However, Martial, you can likely work around it by registering the open > handler of vxworks_tick_time_module only to open_nrt. That will switch > the caller of rt_dev_open to secondary (Linux) mode and allow to run > that service safely. Device opening is almost never time critical (and > I'm planning to remove open/socket/close_rt handler for Xenomai 2.5 anyway). > > Jan > -- Philippe. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU 2008-11-29 1:24 ` Jan Kiszka 2008-11-29 10:18 ` Philippe Gerum @ 2008-12-01 16:33 ` Rubio, Martial 2008-12-01 23:14 ` Jan Kiszka 1 sibling, 1 reply; 8+ messages in thread From: Rubio, Martial @ 2008-12-01 16:33 UTC (permalink / raw) To: jan.kiszka; +Cc: jeanfrancois.gilot, xenomai, Dupeyrou, Gilles Hi Jan ... ... Thanks a lot for your reply ... And the workaround is OK! 2 little last precisions about this topic : -is it necessary to rename all the "rt"'s entry points as "nrt"'s entry points (close,read,write,ioctl) ? -is the interrupt handler "vxworks_tick_time_module" (when a HW source of PEV1100 will be enable) running in Linux (not critical) mode ? It's very easy (by looking at the name of the interrupt handler) to know why I ask these questions : vxworks_tick_time_module is waiting for an external pulse at 1 ms (and other MSI VME interrupts of course) provided by an external PCIe device PEV1100 in order to announce tick and so schedule an 'old' VME real time Multi-cpu Application (so I'm using also Xenomai VxWorks skins for the migration in multi-core environment) ... Only VME slave boards will be stay in the distant crate! It's perharps a little bit fresh ... But it must go right !!! Regards Martial -----Original Message----- From: jan.kiszka@domain.hid [mailto:jan.kiszka@domain.hid Sent: Saturday, November 29, 2008 2:25 AM To: Rubio, Martial Cc: jeanfrancois.gilot@domain.hid; xenomai@xenomai.org; Dupeyrou, Gilles; Philippe Gerum Subject: Re: External PCIe device: MSI interrupt install hangs up the CPU Hi Martial, sorry for the late reply, but my work queue suffered from some overflows... Rubio, Martial wrote: > Hello ... > > ... I apologize : pci_bus_read_config_word is an old 32-bit access > routine ... > Sorry for my great haste. > > If I disable CONFIG_PCI_MSI, eth0 is plugged now on a classical PCI > IRQ vector And the init part of PEV1100 (my external PCIe device) does > not work (it's normal) > > So CONFIG_PCI_MSI is mandatory . > > About PEV1100 after pci_msi_enable (allways in init part) no source of > interrupt is still enabled ... > So registration can be done (rtdm ...) . > > BUT : are the MSI interrupts (eth0 & PEV1100) are rightly dispatched ??? > > By viewing attached file, the last function seems to be > __ipipe_restore_root And a few lines before irq_tick_handler+0x0/0x14 > [vxworks_tick_time_module]* > As if an interrupt source of PEV1100 has allready been enabled > (obviously no). The problem is that ipipe calls into Linux services (->MSI->PCI) that are not prepared for running in ipipe context: ------------[ cut here ]------------ kernel BUG at kernel/ipipe/core.c:323! invalid opcode: 0000 [#1] PREEMPT SMP Modules linked in: vxworks_tick_time_module(P) lp parport_pc ppdev parport st ide_disk ide_cd_mod ide_core af_packet joydev nfs lockd nfs_acl sunrpc autofs4 snd_pcm_oss snd_mixer_oss snd_seq binfmt_misc snd_seq_device iptable_filter ip_tables ip6_tables x_tables fuse loop dm_mod snd_hda_intel snd_pcm snd_timer snd_page_alloc snd_hwdep snd ohci1394 sr_mod ieee1394 shpchp i2c_nforce2 i2c_core forcedeth sg pci_hotplug soundcore cdrom k8temp usbhid hid ff_memless ehci_hcd ohci_hcd sd_mod usbcore edd ext3 mbcache jbd pata_amd sata_nv libata mptsas mptscsih mptbase scsi_transport_sas scsi_mod [last unloaded: parport_pc] Pid: 12492, comm: tick Tainted: P (2.6.25-pae #10) EIP: 0060:[<c0150a81>] EFLAGS: 00010006 CPU: 0 EIP is at __ipipe_restore_root+0x1a/0x3f EAX: c042c574 EBX: 80850000 ECX: 00000001 EDX: 05de7000 ESI: 0000004c EDI: 00000000 EBP: d94e7cd4 ESP: d94e7cd4 DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 Process tick (pid: 12492, ti=d94e6000 task=d89f50e0 task.ti=d94e6000)<0> I-pipe domain Linux Stack: d94e7cdc c02e9519 d94e7cf0 c02786d8 c03d8e9c 00000085 d94e7d44 d94e7d14 c0279732 0000004c 00000004 d94e7d44 00000000 00000000 da0c1000 0000004c d94e7d2c c02797b0 0000004c 00000004 d94e7d44 c03d8f00 d94e7d54 c021a89c Call Trace: [<c02e9519>] ? _spin_unlock_irqrestore+0x18/0x36 [<c02786d8>] ? pci_conf1_read+0xa4/0xab [<c0279732>] ? raw_pci_read+0x4a/0x55 [<c02797b0>] ? pci_read+0x1d/0x22 [<c021a89c>] ? pci_bus_read_config_dword+0x40/0x63 [<c0221b93>] ? read_msi_msg+0x44/0xbf [<c0110970>] ? set_msi_irq_affinity+0x89/0xd0 [<c011316d>] ? __ipipe_set_irq_affinity+0xbd/0xd1 [<c014feb8>] ? ipipe_set_irq_affinity+0x41/0x5d [<c0154a43>] ? xnintr_attach+0x98/0x117 [<c0186552>] ? rtdm_irq_request+0x23/0x49 [<dc711022>] ? irq_tick_handler+0x0/0x14 [vxworks_tick_time_module] [<dc71132e>] ? open_rt+0x82/0xb4 [vxworks_tick_time_module] [<c0185911>] ? __rt_dev_open+0x8d/0x118 [<c01875d8>] ? sys_rtdm_open+0x46/0x55 [<c0180030>] ? mq_getattr+0x106/0x158 [<c0161e0d>] ? hisyscall_event+0x137/0x256 [<c015053e>] ? __ipipe_dispatch_event+0xc6/0x1a3 [<c0161cd6>] ? hisyscall_event+0x0/0x256 [<c0112e37>] ? __ipipe_syscall_root+0x7f/0x112 [<c0104a9d>] ? system_call+0x29/0x4a ======================= Philippe, I recall some issue that turned out to be a similar call into pci_read_config - was it resolved in any official ipipe release? However, Martial, you can likely work around it by registering the open handler of vxworks_tick_time_module only to open_nrt. That will switch the caller of rt_dev_open to secondary (Linux) mode and allow to run that service safely. Device opening is almost never time critical (and I'm planning to remove open/socket/close_rt handler for Xenomai 2.5 anyway). Jan ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU 2008-12-01 16:33 ` Rubio, Martial @ 2008-12-01 23:14 ` Jan Kiszka 0 siblings, 0 replies; 8+ messages in thread From: Jan Kiszka @ 2008-12-01 23:14 UTC (permalink / raw) To: Rubio, Martial; +Cc: jeanfrancois.gilot, xenomai, Dupeyrou, Gilles [-- Attachment #1: Type: text/plain, Size: 1515 bytes --] Rubio, Martial wrote: > Hi Jan ... > > ... Thanks a lot for your reply ... And the workaround is OK! > > 2 little last precisions about this topic : > > -is it necessary to rename all the "rt"'s entry points as > "nrt"'s entry points (close,read,write,ioctl) ? For close, yes, but the rest should be fine - otherwise the problem is fatal for you. Changing the rest, which is likely supposed to do the critical work, will leave you without any improvement over plain Linux. I said "should" because there is the risk that some other code paths of PCIe MSI handling triggers the bug report as well. > -is the interrupt handler "vxworks_tick_time_module" (when a HW > source of PEV1100 will be enable) > running in Linux (not critical) mode ? Is that the handler you register with RTDM? Then no, it will be run over the primary domain, ie. Xenomai. > > It's very easy (by looking at the name of the interrupt handler) to know > why I ask these questions : > vxworks_tick_time_module is waiting for an external pulse at 1 ms (and > other MSI VME interrupts of course) > provided by an external PCIe device PEV1100 in order to announce tick > and so schedule an 'old' VME real time > Multi-cpu Application (so I'm using also Xenomai VxWorks skins for the > migration in multi-core environment) > ... Only VME slave boards will be stay in the distant crate! > > It's perharps a little bit fresh ... But it must go right !!! > > Regards > > Martial > Jan [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 257 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2008-12-01 23:14 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-11-21 15:44 [Xenomai-help] External PCIe device: MSI interrupt install hangs up the CPU Rubio, Martial 2008-11-21 16:45 ` Jan Kiszka 2008-11-24 16:55 ` Rubio, Martial 2008-11-25 13:13 ` Rubio, Martial 2008-11-29 1:24 ` Jan Kiszka 2008-11-29 10:18 ` Philippe Gerum 2008-12-01 16:33 ` Rubio, Martial 2008-12-01 23:14 ` Jan Kiszka
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.