Re: Kernel panic with if_sf.ko

From: Pyun YongHyeon <pyunyh_at_gmail.com>
Date: Thu, 2 Jul 2009 10:57:29 +0900
On Wed, Jul 01, 2009 at 11:21:08PM +0700, Alexey Dokuchaev wrote:
> Hello there,
> 
> I've started to observe the following rather annoying panic if I boot
> with if_sf loaded (via loader.conf) and having sf0 configured via DHCP
> on recent -CURRENT.  If I comment out driver from loader.conf and load
> it manually (via kldload(8)) after system boots, it loads and gets
> configured just fine.
> 

Hmm, sf(4) also calls me. :-(
I can't reproduce this on 10 days old CURRENT box so will try
reproduce it on latest CURRENT.

> Any clues here?  Attached is relevant dmesg + DDB trace (debug kernel
> with WITNESS).  I'm happy to provide any additional information (that
> is, ps/show uma/malloc, whatever).
> 

Still have no idea why it panicked but can you let me know the line
number of sf_stop+0x130?

> Thanks.
> 
> ./danfe

> sf0: link state changed to UP
> Starting Network: lo0 sf0.
> sf1: link state changed to DOWN
> Kernel page fault with the following non-sleepable locks held:
> exclusive sleep mutex sf0 (network driver) r = 0 (0xc356c584) locked _at_ /usr/src/
> sys/modules/sf/../../dev/sf/if_sf.c:1971
> KDB: stack backtrace:
> db_trace_self_wrapper(c0683396,d655e808,c05188c5,c0fd7bc2,7b3,...) at db_trace_s
> elf_wrapper+0x26
> kdb_backtrace(c0fd7bc2,7b3,ffffffff,c0eb2914,d655e840,...) at kdb_backtrace+0x29
> _witness_debugger(c0685907,d655e854,4,1,0,...) at _witness_debugger+0x25
> witness_warn(5,0,c06a5f7f,d655e890,c3537d48,...) at witness_warn+0x1fd
> trap(d655e8e0) at trap+0x192
> calltrap() at calltrap+0x6
> --- trap 0xc, eip = 0xc062cec2, esp = 0xd655e920, ebp = 0xd655e954 ---
> _bus_dmamap_sync(c3551c80,c3573000,2,90a,6000,...) at _bus_dmamap_sync+0xa2
> sf_stop(c3551d80,4,c0fd7bc2,7c1,c3556c70,...) at sf_stop+0x130
> sf_init_locked(c356c584,0,c0fd7bc2,7b3,c36e3c00,...) at sf_init_locked+0x50
> sf_init(c356b000,c356b000,0,0,c36e3cbb,...) at sf_init+0x3c
> ether_ioctl(c3554c00,8020690c,c36e3c00,d655ea38,456bc5b,...) at ether_ioctl+0x41
> in_ifinit(0,c36e3c00,1aa,1a6,c0eb2910,...) at in_ifinit+0x2a6
> in_control(c377bce0,8040691a,c35a26c0,c3554c00,c36b9720,...) at in_control+0xd7b
> ifioctl(c377bce0,8040691a,c35a26c0,c36b9720,4,...) at ifioctl+0x157d
> soo_ioctl(c36a57e0,8040691a,c35a26c0,c34a9b00,c36b9720,...) at soo_ioctl+0x3d2
> kern_ioctl(c36b9720,4,8040691a,c35a26c0,6b9884,...) at kern_ioctl+0x1dd
> ioctl(c36b9720,d655ecf8,419,c06a5e55,c36b9720,...) at ioctl+0x134
> syscall(d655ed38) at syscall+0x323
> Xint0x80_syscall() at Xint0x80_syscall+0x20
> --- syscall (54, FreeBSD ELF32, ioctl), eip = 0x281bf8a3, esp = 0xbfbfe5bc, ebp
> = 0xbfbfe5f8 ---
> 
> 
> Fatal trap 12: page fault while in kernel mode
> fault virtual address   = 0x400000c
> fault code              = supervisor read, page not present
> instruction pointer     = 0x20:0xc062cec2
> stack pointer           = 0x28:0xd655e920
> frame pointer           = 0x28:0xd655e954
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                         = DPL 0, pres 1, def32 1, gran 1
> processor eflags        = interrupt enabled, resume, IOPL = 0
> current process         = 453 (ifconfig)
> [thread pid 453 tid 100040 ]
> Stopped at      _bus_dmamap_sync+0xa2:  movl    0xc(%ebx),%eax
> db> show pcpu
> cpuid        = 0
> dynamic pcpu    = 0xd3c597
> curthread    = 0xc36b9720: pid 453 "ifconfig"
> curpcb       = 0xd655ed90
> fpcurthread  = none
> idlethread   = 0xc34adbe0: pid 10 "idle"
> APIC ID      = 0
> currentldt   = 0x50
> spin locks held:
> db> show allpcpu
> Current CPU: 0
> 
> cpuid        = 0
> dynamic pcpu    = 0xd3c597
> curthread    = 0xc36b9720: pid 453 "ifconfig"
> curpcb       = 0xd655ed90
> fpcurthread  = none
> idlethread   = 0xc34adbe0: pid 10 "idle"
> APIC ID      = 0
> currentldt   = 0x50
> spin locks held:
> db> show locks
> exclusive sleep mutex sf0 (network driver) r = 0 (0xc356c584) locked _at_ /usr/src/
> sys/modules/sf/../../dev/sf/if_sf.c:1971
> db> show alllocks
> Process 453 (ifconfig) thread 0xc36b9720 (100040)
> exclusive sleep mutex sf0 (network driver) r = 0 (0xc356c584) locked _at_ /usr/src/
> sys/modules/sf/../../dev/sf/if_sf.c:1971

> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
Received on Wed Jul 01 2009 - 23:59:35 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:51 UTC