Re: Kernel Panic with bonding + IPoIB on 3.2.9

From: Joseph Glanville
Date: Sun Mar 18 2012 - 17:20:59 EST


On 19 March 2012 07:21, Joseph Glanville
<joseph.glanville@xxxxxxxxxxxxxx> wrote:
> On 19 March 2012 06:41, Joseph Glanville
> <joseph.glanville@xxxxxxxxxxxxxx> wrote:
>> Hi guys,
>>
>> I am getting an annoying kernel panic on 3.2.9 that seems to be
>> related to bonding (as I can't reproduce the crash without it)
>> I believe it might be related to LRO/GRO but there isnt a param to
>> disable it anymore that I could see in /ulp/ipoib/
>> Let me know if there is anything further I can do to help debug.
>>
>> Useful information:
>>
>> Hardware:
>> Dell C2100 - Intel Xeon dual socket with 144GB RAM
>> Mellanox Connect-X DDR using in kernel mlx4 driver
>> Machine is also a Xen dom0
>>
>> ibstatCA 'mlx4_0'
>>        CA type: MT26418
>>        Number of ports: 2
>>        Firmware version: 2.9.1000
>>        Hardware version: a0
>>        Node GUID: 0x0002c9030008d7be
>>        System image GUID: 0x0002c9030008d7c1
>>        Port 1:
>>                State: Active
>>                Physical state: LinkUp
>>                Rate: 20
>>                Base lid: 6
>>                LMC: 0
>>                SM lid: 1
>>                Capability mask: 0x02590868
>>                Port GUID: 0x0002c9030008d7bf
>>                Link layer: InfiniBand
>>        Port 2:
>>                State: Active
>>                Physical state: LinkUp
>>                Rate: 20
>>                Base lid: 9
>>                LMC: 0
>>                SM lid: 1
>>                Capability mask: 0x02590868
>>                Port GUID: 0x0002c9030008d7c0
>>                Link layer: InfiniBand
>>
>>
>> ip link show
>> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
>>    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>> 2: ib0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 65220 qdisc
>> pfifo_fast master bond0 state UP qlen 256
>>    link/infiniband
>> 80:00:00:48:fe:80:00:00:00:00:00:00:00:02:c9:03:00:08:d7:bf brd
>> 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
>> 3: ib1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 65220 qdisc
>> pfifo_fast master bond0 state UP qlen 256
>>    link/infiniband
>> 80:00:00:49:fe:80:00:00:00:00:00:00:00:02:c9:03:00:08:d7:c0 brd
>> 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:ff
>> 4: gre0: <NOARP> mtu 1476 qdisc noop state DOWN
>>    link/gre 0.0.0.0 brd 0.0.0.0
>> 5: sit0: <NOARP> mtu 1480 qdisc noop state DOWN
>>    link/sit 0.0.0.0 brd 0.0.0.0
>> 6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 65220 qdisc
>> noqueue state UP
>>    link/infiniband
>> 80:00:00:48:fe:80:00:00:00:00:00:00:00:02:c9:03:00:08:d7:bf brd
>> 00:ff:ff:ff:ff:12:40:1b:ff:ff:00:00:00:00:00:00:ff:ff:ff:f
>>
>> The KP itself:
>> [  422.046837] ------------[ cut here ]------------
>> [  422.047024] kernel BUG at net/core/dev.c:1896!
>> [  422.047126] invalid opcode: 0000 [#1] SMP
>> [  422.047289] CPU 1
>> [  422.047328] Modules linked in: ib_srpt(O) scst_vdisk(O) scst(O)
>> bonding raid1 raid0 md_mod dm_multipath
>> [  422.047869]
>> [  422.047962] Pid: 3352, comm: sshd Tainted: G           O
>> 3.2.1-orion #4 Dell                   PowerEdge C2100       /0P19C9
>> [  422.048237] RIP: e030:[<ffffffff81559b92>]  [<ffffffff81559b92>]
>> skb_checksum_help+0x142/0x150
>> [  422.048450] RSP: e02b:ffff88006cb11758  EFLAGS: 00010282
>> [  422.048556] RAX: 0000000000000108 RBX: ffff880072f7f4e8 RCX: 0000000060004420
>> [  422.048668] RDX: 0000000000000108 RSI: 0000000000000000 RDI: ffff880072f7f4e8
>> [  422.048780] RBP: ffff88006cb11778 R08: ffff88000e53529c R09: 0000000000000104
>> [  422.048892] R10: ffffffff8151a7d0 R11: 0000000000000000 R12: 00000000ffff0018
>> [  422.049005] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
>> [  422.049119] FS:  00007fea22aa8700(0000) GS:ffff8800bf435000(0000)
>> knlGS:0000000000000000
>> [  422.049288] CS:  e033 DS: 0000 ES: 0000 CR0: 000000008005003b
>> [  422.049395] CR2: 00007fff14d07ed8 CR3: 00000000085dc000 CR4: 0000000000002660
>> [  422.049506] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
>> [  422.049618] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
>> [  422.049742] Process sshd (pid: 3352, threadinfo ffff88006cb10000,
>> task ffff88000cea4920)
>> [  422.049909] Stack:
>> [  422.050002]  ffff880072f7f4e8 ffff88000ce64000 0000000000000000
>> 0000000000000000
>> [  422.050290]  ffff88006cb117e8 ffffffff8155f15e ffff88006cb11858
>> ffffffff8187ba80
>> [  422.050580]  ffff88000ce5bc80 0000000000000000 0000000000000006
>> 0000000000000000
>> [  422.050869] Call Trace:
>> [  422.050967]  [<ffffffff8155f15e>] dev_hard_start_xmit+0x36e/0x6c0
>> [  422.051084]  [<ffffffff8157a19b>] sch_direct_xmit+0xdb/0x1e0
>> [  422.051191]  [<ffffffff8155f638>] dev_queue_xmit+0x188/0x620
>> [  422.051301]  [<ffffffffa003b297>] bond_dev_queue_xmit+0x27/0x70 [bonding]
>> [  422.051413]  [<ffffffffa003b5e4>] bond_start_xmit+0x304/0x4e0 [bonding]
>> [  422.051524]  [<ffffffff8155f099>] dev_hard_start_xmit+0x2a9/0x6c0
>> [  422.051633]  [<ffffffff8155f895>] dev_queue_xmit+0x3e5/0x620
>> [  422.051742]  [<ffffffff81567cbd>] neigh_connected_output+0xbd/0xf0
>> [  422.051853]  [<ffffffff815a7120>] ? ip_fragment+0x850/0x850
>> [  422.051960]  [<ffffffff815a72ae>] ip_finish_output+0x18e/0x300
>> [  422.052068]  [<ffffffff815a7dd8>] ip_output+0x98/0xa0
>> [  422.052172]  [<ffffffff815a74be>] ? __ip_local_out+0x9e/0xa0
>> [  422.052279]  [<ffffffff815a74e4>] ip_local_out+0x24/0x30
>> [  422.052385]  [<ffffffff815a764a>] ip_queue_xmit+0x15a/0x400
>> [  422.052510]  [<ffffffff815bdade>] tcp_transmit_skb+0x3de/0x8f0
>> [  422.052617]  [<ffffffff815be702>] tcp_write_xmit+0x1d2/0x9c0
>> [  422.052725]  [<ffffffff81129057>] ? ksize+0x17/0xc0
>> [  422.052829]  [<ffffffff815bef41>] __tcp_push_pending_frames+0x21/0x90
>> [  422.052939]  [<ffffffff815b09ae>] tcp_sendmsg+0x75e/0xd80
>> [  422.053047]  [<ffffffff815d4c0f>] inet_sendmsg+0x5f/0xb0
>> [  422.053155]  [<ffffffff81009f3f>] ? xen_restore_fl_direct_reloc+0x4/0x4
>> [  422.053267]  [<ffffffff8126734e>] ? selinux_socket_sendmsg+0x1e/0x20
>> [  422.053377]  [<ffffffff8154732a>] sock_aio_write+0x15a/0x170
>> [  422.053486]  [<ffffffff812652d1>] ? inode_has_perm.clone.15+0x21/0x30
>> [  422.053597]  [<ffffffff8113133a>] do_sync_write+0xda/0x120
>> [  422.053704]  [<ffffffff81268003>] ? selinux_file_permission+0xb3/0x140
>> [  422.053821]  [<ffffffff812e8efa>] ? put_ldisc+0x5a/0xc0
>> [  422.053937]  [<ffffffff81262237>] ? security_file_permission+0x27/0xb0
>> [  422.054048]  [<ffffffff81131ca9>] vfs_write+0x169/0x180
>> [  422.054153]  [<ffffffff81131f1c>] sys_write+0x4c/0x90
>> [  422.054260]  [<ffffffff816891d2>] system_call_fastpath+0x16/0x1b
>> [  422.054367] Code: 65 86 ff ff 85 c0 0f 84 75 ff ff ff eb a6 41 29
>> d4 48 8b 83 d8 00 00 00 0f b7 53 72 45 8d 64 04 02 41 39 d4 77 cd e9
>> 5d ff ff ff <0f> 0b 0f 0b 66 2e 0f 1f 84 00 00 00 00 00 55 b8 ea ff ff
>> ff 48
>> [  422.056691] RIP  [<ffffffff81559b92>] skb_checksum_help+0x142/0x150
>> [  422.056831]  RSP <ffff88006cb11758>
>> [  422.056930] ---[ end trace 751906f8ee2b0c91 ]---
>> [  422.057032] Kernel panic - not syncing: Fatal exception in interrupt
>> [  422.057141] Pid: 3352, comm: sshd Tainted: G      D    O 3.2.1-orion #4
>> [  422.057250] Call Trace:
>> [  422.057348]  [<ffffffff8167e944>] panic+0x8c/0x1a0
>> [  422.057451]  [<ffffffff816825fa>] oops_end+0xea/0xf0
>> [  422.057557]  [<ffffffff81016636>] die+0x56/0x90
>> [  422.057660]  [<ffffffff81681f64>] do_trap+0xc4/0x170
>> [  422.057764]  [<ffffffff81013e50>] do_invalid_op+0x90/0xb0
>> [  422.057870]  [<ffffffff81559b92>] ? skb_checksum_help+0x142/0x150
>> [  422.057989]  [<ffffffff8168b1ab>] invalid_op+0x1b/0x20
>> [  422.058101]  [<ffffffff8151a7d0>] ? ipoib_setup+0x330/0x330
>> [  422.058207]  [<ffffffff81559b92>] ? skb_checksum_help+0x142/0x150
>> [  422.058316]  [<ffffffff8155f15e>] dev_hard_start_xmit+0x36e/0x6c0
>> [  422.058425]  [<ffffffff8157a19b>] sch_direct_xmit+0xdb/0x1e0
>> [  422.058533]  [<ffffffff8155f638>] dev_queue_xmit+0x188/0x620
>> [  422.058641]  [<ffffffffa003b297>] bond_dev_queue_xmit+0x27/0x70 [bonding]
>> [  422.058753]  [<ffffffffa003b5e4>] bond_start_xmit+0x304/0x4e0 [bonding]
>> [  422.058864]  [<ffffffff8155f099>] dev_hard_start_xmit+0x2a9/0x6c0
>> [  422.058973]  [<ffffffff8155f895>] dev_queue_xmit+0x3e5/0x620
>> [  422.059080]  [<ffffffff81567cbd>] neigh_connected_output+0xbd/0xf0
>> [  422.059190]  [<ffffffff815a7120>] ? ip_fragment+0x850/0x850
>> [  422.059296]  [<ffffffff815a72ae>] ip_finish_output+0x18e/0x300
>> [  422.059412]  [<ffffffff815a7dd8>] ip_output+0x98/0xa0
>> [  422.059517]  [<ffffffff815a74be>] ? __ip_local_out+0x9e/0xa0
>> [  422.059624]  [<ffffffff815a74e4>] ip_local_out+0x24/0x30
>> [  422.059730]  [<ffffffff815a764a>] ip_queue_xmit+0x15a/0x400
>> [  422.059836]  [<ffffffff815bdade>] tcp_transmit_skb+0x3de/0x8f0
>> [  422.059944]  [<ffffffff815be702>] tcp_write_xmit+0x1d2/0x9c0
>>
>> --
>> Founder | Director | VP Research
>> Orion Virtualisation Solutions | www.orionvm.com.au | Phone: 1300 56
>> 99 52 | Mobile: 0428 754 846
>
> CC'ing netdev as that is probably the most appropriate now that I
> think about it.
>
> --
> Founder | Director | VP Research
> Orion Virtualisation Solutions | www.orionvm.com.au | Phone: 1300 56
> 99 52 | Mobile: 0428 754 846

I have narrowed it down to mtu, MTU up to 50k seems to work just fine,
but max MTU of 65520 basically instantly KPs the machine.
Time to dig into bonding.c I guess, if any of the bonding devs could
shed any light on this that would be awesome.

Joseph.

--
Founder | Director | VP Research
Orion Virtualisation Solutions | www.orionvm.com.au | Phone: 1300 56
99 52 | Mobile: 0428 754 846
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/