All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.