Summary: | Kernel panic (page fault) on 10.3-STABLE with VIMAGE & Infiniband modules | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | Justin Clift <justin> | ||||||||||||||||
Component: | kern | Assignee: | Hans Petter Selasky <hselasky> | ||||||||||||||||
Status: | Closed FIXED | ||||||||||||||||||
Severity: | Affects Some People | CC: | amd64, hselasky, matt.joras | ||||||||||||||||
Priority: | --- | ||||||||||||||||||
Version: | 10.3-RELEASE | ||||||||||||||||||
Hardware: | amd64 | ||||||||||||||||||
OS: | Any | ||||||||||||||||||
Attachments: |
|
Description
Justin Clift
2016-04-21 14:47:22 UTC
Oops, forgot to include the trigger. It's 100% reproducible, and very easy. All that needs to be done is have an interface (eg ib0) be in IPoIB mode with an IP assigned. (eg 10.10.100.1) When that interface is pinged from another host (eg "ping 10.10.100.1") the kernel panic immediately happens. Every time. ;) Hmmm, ddd seems to be showing more/better information about the crash. Attaching screenshots, as they seem to show the exact code at the crash point. ;) Created attachment 169532 [details]
ipoib_ib_completion()
Created attachment 169533 [details]
ipoib_cm_handle_rx_wc()
Created attachment 169534 [details]
netisr_dispatch_src()
Created attachment 169535 [details]
ip_input()
Created attachment 169536 [details]
calltrap()
In this context, can you type: print *dev Or: print dev->if_vnet (kgdb) list *0xffffffff808f89fa 0xffffffff808f89fa is in ipoib_cm_handle_rx_wc (/usr/src/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c:565). 560 mb->m_pkthdr.rcvif = dev; 561 proto = *mtod(mb, uint16_t *); 562 m_adj(mb, IPOIB_ENCAP_LEN); 563 564 IPOIB_MTAP_PROTO(dev, mb, proto); 565 ipoib_demux(dev, mb, ntohs(proto)); 566 567 repost: --HPS Created attachment 169537 [details]
ipoib_cm_handle_rx_wc() - print *dev
Ahhh, cut-n-paste works too. That'll be easier. :) (gdb) print dev->if_vnet $3 = (struct vnet *) 0xfffff8000318aa80 (gdb) Created attachment 169538 [details]
VIMAGE + ipoib fix
Can you try this patch?
Awesome Hans, that seems to have fixed it. :) Instead of the kernel panic, the console is now showing: ib0: REQ arrived ib0: REP received. ib0 cm rep handler [etc] Hi, Can you test it a bit, and I'll get it upstream and then to 10-stable in a weeks time or so? --HPS Yep, no problem. I should be able to spin an initial IB enabled image of FreeNAS 9.10 in a few hours, then (hopefully) hammer on that for a bit. Assuming nothing blows up. :D (For anyone following along that also wants to try stuff out, look here: https://github.com/justinclift/freenas-infiniband) A commit references this bug: Author: hselasky Date: Fri Apr 22 06:33:06 UTC 2016 New revision: 298458 URL: https://svnweb.freebsd.org/changeset/base/298458 Log: Add missing set of the current VNET when inputting IP packets in IPoIB. This fixes a kernel panic when using IPoIB with VIMAGE and infiniband. PR: 208957 Sponsored by: Mellanox Technologies Tested by: Justin Clift <justin@postgresql.org> MFC after: 1 week Changes: head/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c A commit references this bug: Author: hselasky Date: Fri Apr 29 11:29:53 UTC 2016 New revision: 298779 URL: https://svnweb.freebsd.org/changeset/base/298779 Log: MFC r298458: Add missing set of the current VNET when inputting IP packets in IPoIB. This fixes a kernel panic when using IPoIB with VIMAGE and infiniband. PR: 208957 Sponsored by: Mellanox Technologies Tested by: Justin Clift <justin@postgresql.org> Changes: _U stable/10/ stable/10/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c A commit references this bug: Author: hselasky Date: Fri Apr 29 11:31:28 UTC 2016 New revision: 298780 URL: https://svnweb.freebsd.org/changeset/base/298780 Log: MFC r298458: Add missing set of the current VNET when inputting IP packets in IPoIB. This fixes a kernel panic when using IPoIB with VIMAGE and infiniband. PR: 208957 Sponsored by: Mellanox Technologies Tested by: Justin Clift <justin@postgresql.org> Changes: _U stable/9/sys/ stable/9/sys/ofed/drivers/infiniband/ulp/ipoib/ipoib_cm.c |