AnsweredAssumed Answered

iMX6Q pcie msi handler errors with e1000e

Question asked by Einar Bjorgvinsson on Jan 22, 2016
Latest reply on Jan 28, 2016 by Yuri Muhin

Hi

 

We have a custom board based on iMX6Q that contains a secondary Ethernet phy (Intel 82574) interfaced via the PCIe bus.

The linux kernel is 3.14.28 (Boundary github) with the RT patch rt25 (https://www.kernel.org/pub/linux/kernel/projects/rt/3.14/older/).

The e1000e module loads correctly but gives problem when bringing the second Ethernet interface up in linux (ifconfig eth1 up).

That will produce a kernel trace as follows:

[   37.842527] WARNING: CPU: 1 PID: 90 at kernel/irq/handle.c:148 handle_irq_event_percpu+0x2d8/0x2e8()
[   37.854207] irq 396 handler irq_default_primary_handler+0x0/0x1c enabled interrupts
[   37.861890] Modules linked in: e1000e can_raw can nfsd nfs_acl lockd sunrpc flexcan can_dev
[   37.870326] CPU: 1 PID: 90 Comm: irq/152-mx6-pci Not tainted 3.14.28-rt25-00003-gace9919-dirty #84
[   37.870331] Backtrace: 
[   37.870356] [<80012ddc>] (dump_backtrace) from [<80013048>] (show_stack+0x20/0x24)
[   37.870369]  r7:8007a194 r6:00000094 r5:809b7b34 r4:00000000
[   37.870388] [<80013028>] (show_stack) from [<80639208>] (dump_stack+0x84/0xd0)
[   37.870410] [<80639184>] (dump_stack) from [<8002c154>] (warn_slowpath_common+0x80/0x9c)
[   37.870416]  r5:00000009 r4:e24e5df8
[   37.870427] [<8002c0d4>] (warn_slowpath_common) from [<8002c1b0>] (warn_slowpath_fmt+0x40/0x48)
[   37.870439]  r8:00000002 r7:0000018c r6:0000018c r5:e39123c0 r4:807a842c
[   37.870449] [<8002c174>] (warn_slowpath_fmt) from [<8007a194>] (handle_irq_event_percpu+0x2d8/0x2e8)
[   37.870455]  r3:0000018c r2:807a842c
[   37.870459]  r4:e24b9000
[   37.870467] [<80079ebc>] (handle_irq_event_percpu) from [<8007a21c>] (handle_irq_event+0x78/0xb8)
[   37.870480]  r10:8007ae84 r9:e24b8700 r8:e20113c0 r7:00000001 r6:0000018c r5:e39123c0
[   37.870484]  r4:e24b9000
[   37.870496] [<8007a1a4>] (handle_irq_event) from [<8007d0a4>] (handle_simple_irq+0x84/0x10c)
[   37.870502]  r5:e24cac30 r4:e24b9000
[   37.870511] [<8007d020>] (handle_simple_irq) from [<800795f0>] (generic_handle_irq+0x3c/0x4c)
[   37.870517]  r5:e24cac30 r4:0000018c
[   37.870532] [<800795b4>] (generic_handle_irq) from [<803187b0>] (dw_handle_msi_irq+0x6c/0x98)
[   37.870537]  r5:e24cac30 r4:0000000c
[   37.870547] [<80318744>] (dw_handle_msi_irq) from [<80319070>] (imx6_pcie_msi_handler+0x1c/0x20)
[   37.870557]  r7:00000001 r6:00000000 r5:e20113c0 r4:e24b8700
[   37.870566] [<80319054>] (imx6_pcie_msi_handler) from [<8007aeb4>] (irq_forced_thread_fn+0x30/0x74)
[   37.870575] [<8007ae84>] (irq_forced_thread_fn) from [<8007b1d8>] (irq_thread+0x150/0x1c8)
[   37.870586]  r7:00000001 r6:00000000 r5:e24e4000 r4:e24b8720
[   37.870604] [<8007b088>] (irq_thread) from [<8004e6b8>] (kthread+0xcc/0xe4)
[   37.870617]  r10:00000000 r9:00000000 r8:00000000 r7:8007b088 r6:e24b8700 r5:e24b8740
[   37.870621]  r4:00000000
[   37.870632] [<8004e5ec>] (kthread) from [<8000ed28>] (ret_from_fork+0x14/0x20)
[   37.870643]  r7:00000000 r6:00000000 r5:8004e5ec r4:e24b8740
[   37.870647] ---[ end trace 0000000000000002 ]---

 

This doesn't seem to disable the operational state of the interface since the link will be up and useful.

This kernel trace was introduced after I patched the kernel with the RT25 patch. I'm not sure what the exact coverage nor the match for the Boundary version of the kernel but it seems so that the only thing giving me error is this part.

 

Here is a snippet from dmesg:

[    1.532595] imx6q-pcie 1ffc000.pcie: Link up, Gen=1
[    1.538110] imx6q-pcie 1ffc000.pcie: PCI host bridge to bus 0000:00
[    1.544500] pci_bus 0000:00: root bus resource [io  0x1000-0x10000]
[    1.550826] pci_bus 0000:00: root bus resource [mem 0x01000000-0x01efffff]
[    1.557769] pci_bus 0000:00: root bus resource [bus 00-ff]
[    1.563363] pci 0000:00:00.0: [16c3:abcd] type 01 class 0x060400
[    1.569469] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
[    1.575828] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
[    1.582739] pci 0000:00:00.0: supports D1
[    1.586809] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    1.600168] pci 0000:01:00.0: [8086:10d3] type 00 class 0x020000
[    1.606344] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x0001ffff]
[    1.612791] pci 0000:01:00.0: reg 0x18: [io  0x0000-0x001f]
[    1.618485] pci 0000:01:00.0: reg 0x1c: [mem 0x00000000-0x00003fff]
[    1.625620] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    1.639932] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
[    1.646799] pci 0000:00:00.0: BAR 0: assigned [mem 0x01000000-0x010fffff]
[    1.653664] pci 0000:00:00.0: BAR 8: assigned [mem 0x01100000-0x011fffff]
[    1.660521] pci 0000:00:00.0: BAR 6: assigned [mem 0x01200000-0x0120ffff pref]
[    1.667810] pci 0000:00:00.0: BAR 7: assigned [io  0x1000-0x1fff]
[    1.673982] pci 0000:01:00.0: BAR 0: assigned [mem 0x01100000-0x0111ffff]
[    1.680865] pci 0000:01:00.0: BAR 3: assigned [mem 0x01120000-0x01123fff]
[    1.687746] pci 0000:01:00.0: BAR 2: assigned [io  0x1000-0x101f]
[    1.693929] pci 0000:00:00.0: PCI bridge to [bus 01]
[    1.698956] pci 0000:00:00.0:   bridge window [io  0x1000-0x1fff]
[    1.705157] pci 0000:00:00.0:   bridge window [mem 0x01100000-0x011fffff]
[    1.713108] pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
[    1.720191] pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
[    1.726785] pcie_pme 0000:00:00.0:pcie01: service driver pcie_pme loaded
[    1.734177] aer 0000:00:00.0:pcie02: service driver aer loaded
[    2.255042] ehci-pci: EHCI PCI platform driver

 

Anyone got some insight into what might cause this ?

 

kind regards

Einar

Outcomes