Re: iwn panic with 9.0-BETA3-amd64

From: Niclas Zeising <niclas.zeising_at_gmail.com>
Date: Fri, 07 Oct 2011 16:18:47 +0200
On 10/07/11 12:26, Rene Ladan wrote:
> Hi,
>
> just experienced a panic with if_iwn on 9.0-BETA3-amd64 (base and
> kernel compiled with clang, CPUTYPE?=core2, GENERIC with CAPABILITIES).
>
> My network card: iwn0:<Intel(R) WiFi Link 5100>  mem
> 0xf5200000-0xf5201fff irq 17 at device 0.0 on pci3
>
> iwn0: flags=8803<UP,BROADCAST,SIMPLEX,MULTICAST>  metric 0 mtu 2290
>          ether 00:26:c6:xx:xx:xx
>          nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
>          media: IEEE 802.11 Wireless Ethernet autoselect mode 11b
>          status: associated
>
> Some snippets from /var/crash/core.txt.24 :
>
> Unread portion of the kernel message buffer:
> Kernel page fault with the following non-sleepable locks held:
> exclusive sleep mutex iwn0 (network driver) r = 0 (0xffffff8000882018)
> locked _at_ /usr/src/9/sys/dev/iwn/if_iwn.c:3135
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b
> kdb_backtrace() at kdb_backtrace+0x39
> witness_warn() at witness_warn+0x438
> trap() at trap+0x14c
> calltrap() at calltrap+0x8
> --- trap 0xc, rip = 0xffffffff804fd1c7, rsp = 0xffffff811850a9d0, rbp =
> 0xffffff811850aa30 ---
> iwn_ampdu_tx_done() at iwn_ampdu_tx_done+0xa7
> iwn_notif_intr() at iwn_notif_intr+0x523
> iwn_intr() at iwn_intr+0x60c
> intr_event_execute_handlers() at intr_event_execute_handlers+0x7e
> ithread_loop() at ithread_loop+0xf0
> fork_exit() at fork_exit+0x80
> fork_trampoline() at fork_trampoline+0xe
> --- trap 0, rip = 0, rsp = 0xffffff811850ad00, rbp = 0 ---
>
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address   = 0xa
> fault code              = supervisor read data, page not present
> instruction pointer     = 0x20:0xffffffff804fd1c7
> stack pointer           = 0x28:0xffffff811850a9d0
> frame pointer           = 0x28:0xffffff811850aa30
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                          = DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags        = interrupt enabled, resume, IOPL = 0
> current process         = 12 (irq259: iwn0)
> trap number             = 12
> panic: page fault
> cpuid = 0
> Uptime: 1h23m24s
> Dumping 692 out of 4055 MB:..3%..12%..21%..31%..42%..51%..61%..72%..81%..91%
>
> No symbol "dumptid" in current context.
> [...]
>
> #0  sched_switch (td=dwarf2_read_address: Corrupted DWARF expression.
> ) at /usr/src/9/sys/kern/sched_ule.c:1854
> 1854    /usr/src/9/sys/kern/sched_ule.c: No such file or directory.
>          in /usr/src/9/sys/kern/sched_ule.c
> (kgdb) #0  sched_switch (td=dwarf2_read_address: Corrupted DWARF expression.
> ) at /usr/src/9/sys/kern/sched_ule.c:1854
> #1  0xffffffff807f23c9 in mi_switch (flags=dwarf2_read_address:
> Corrupted DWARF expression.
> )
>      at /usr/src/9/sys/kern/kern_synch.c:448
> #2  0x0000000000000000 in ?? ()
> #3  0xffffff811c0367d0 in ?? ()
> #4  0x0000000000000046 in ?? ()
> #5  0xffffff811c036810 in ?? ()
> #6  0xffffffff807c2075 in intr_event_handle (ie=dwarf2_read_address:
> Corrupted DWARF expression.
> )
>      at /usr/src/9/sys/kern/kern_intr.c:1476
> Previous frame inner to this frame (corrupt stack?)
>
> [...]
>
> More information upon request.
>
> Regards,
> René

This might or might not be related, but, I'm having trouble with the iwn 
firmware crashing. I also have a clang built kernel (and userland) 
buildwith CPUTYPE=core2. My iwn device is
iwn0: <Intel(R) Wireless WiFi Link 4965> mem 0xe4000000-0xe4001fff irq 
17 at device 0.0 on pci16
and the firmware gives the following output when it dies.
iwn0: iwn_intr: fatal firmware error
firmware error log:
   error type      = "NMI_INTERRUPT_WDG" (0x00000004)
   program counter = 0x0000046C
   source line     = 0x000000D0
   error data      = 0x0000000207430000
   branch link     = 0x00008370000004C2
   interrupt link  = 0x000006DA000018B8
   time            = 1052095
driver status:
   tx ring  0: qid=0  cur=246 queued=0
   tx ring  1: qid=1  cur=0   queued=0
   tx ring  2: qid=2  cur=0   queued=0
   tx ring  3: qid=3  cur=13  queued=0
   tx ring  4: qid=4  cur=183 queued=0
   tx ring  5: qid=5  cur=0   queued=0
   tx ring  6: qid=6  cur=0   queued=0
   tx ring  7: qid=7  cur=0   queued=0
   tx ring  8: qid=8  cur=0   queued=0
   tx ring  9: qid=9  cur=0   queued=0
   tx ring 10: qid=10 cur=0   queued=0
   tx ring 11: qid=11 cur=0   queued=0
   tx ring 12: qid=12 cur=0   queued=0
   tx ring 13: qid=13 cur=0   queued=0
   tx ring 14: qid=14 cur=0   queued=0
   tx ring 15: qid=15 cur=0   queued=0
   rx ring: cur=38

The only way to restore the firmware is to reboot the computer.
Regards!
-- 
Niclas Zeising
Received on Fri Oct 07 2011 - 14:21:13 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:18 UTC