NMI crash after 3 interrupts (5.7 snapshot + latest if_ppp.c)

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

NMI crash after 3 interrupts (5.7 snapshot + latest if_ppp.c)

walter-daugherity
I am running an OpenBSD 5.7 snapshot dated 2015-05-29 plus David Gwynne's
latest
RCS file: /cvs/src/sys/net/if_ppp.c, which fixed a long-standing pppd bug
(thanks again, David!).

However, when I try to bring up the WiFi link, I get a variety of errors,
frequently including crashing to ddb with a NMI.  Captured console output
is appended below.

Could this be another spl problem and/or a failure to mask interrupts in
the critical sections of the interrupt handlers involved (see trace below)?

Thanks,

Walter



>Synopsis: NMI crash after 3 interrupts


>Category: kernel


>Environment:

        System      : OpenBSD 5.7 snapshot + latest if_ppp.c

        Details     : OpenBSD 5.7-current (GENERIC) #0: Fri May 29 11:41:04
AEST 2015

    [hidden email]:/home/dlg/src/sys/arch/i386/compile/GENERIC

        Architecture: OpenBSD.i386

        Machine     : i386


>Description:

        This is a 90MHz Pentium (Compaq Deskpro XL 590) used as a router
from my LAN to a dialup ISP (typical connection speed 22-38K) and an
802.11g WiFi link (which has malo0 debug logging enabled).


Dialup with pppd now works, thanks to David Gwynne's latest if_ppp.c.
However, when I try to bring up the WiFi link, I get a variety of errors,
frequently including crashing to ddb with a NMI.  Captured console output
is appended below.


Could this be another spl problem and/or a failure to mask interrupts in
the critical sections of the interrupt handlers involved (see trace below)?

>> OpenBSD/i386 BOOT 3.26
boot>
booting hd0a:/bsd: 9675036+1067628 [83+408208+402354]=0xb04be4
entry point at 0x200120

[ using 811100 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2015 OpenBSD. All rights reserved.
http://www.OpenBSD.org

OpenBSD 5.7-current (GENERIC) #0: Fri May 29 11:41:04 AEST 2015
    [hidden email]:/home/dlg/src/sys/arch/i386/compile/GENERIC
cpu0: Intel Pentium (P54C) ("GenuineIntel" 586-class) 91 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,MCE,CX8
real mem  = 150487040 (143MB)
avail mem = 135778304 (129MB)
mpath0 at root
scsibus0 at mpath0: 256 targets
mainbus0 at root
bios0 at mainbus0: date 04/07/97
apm0 at bios0: Power Management spec V1.1 (BIOS management disabled)
apm0: APM power management enable: unrecognized device ID (9)
pcibios at bios0 function 0x1a not configured
bios0: ROM list: 0xc0000/0x8000 0xc8000/0x2800!
cpu0 at mainbus0: (uniprocessor)
cpu0: F00F bug workaround installed
pci0 at mainbus0 bus 0: configuration mode 1 (bios)
0:0:0: mem address conflict 0xffffff0/0x10
0:0:0: io address conflict 0x10000e10/0x10
0:0:0: io address conflict 0x62000146/0x2
"Compaq Triflex PCI" rev 0x01 at pci0 dev 0 function 0 not configured
pcn0 at pci0 dev 11 function 0 "AMD 79c970 PCnet-PCI" rev 0x02, Am79c970,
rev 1: irq 11, address 00:80:5f:d8:8b:a0
pcscp0 at pci0 dev 12 function 0 "AMD 53c974 PCscsi-PCI" rev 0x02: irq 15
pcscp0: AM53C974, 40MHz
scsibus1 at pcscp0: 8 targets, initiator 7
vga1 at pci0 dev 13 function 0 "Matrox MGA Millenium 2064W" rev 0x01
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
malo0 at pci0 dev 14 function 0 "Marvell Libertas 88W8335" rev 0x03: irq 7,
address 00:1e:2a:46:ac:e3
"Compaq EISA" rev 0x03 at pci0 dev 15 function 0 not configured
eisa0 at mainbus0
ep1 at eisa0 slot 2: 3Com 3C509-TP Ethernet, irq 5, address
00:a0:24:4b:e1:14, utp/aui (default utp)
eisa0: can't map i/o space for slot 7
isa0 at mainbus0
isadma0 at isa0
fdc0 at isa0 port 0x3f0/6 irq 6 drq 2
fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com0: console
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
com1: probed fifo depth: 0 bytes
pckbc0 at isa0 port 0x60/5 irq 1 irq 12
pckbd0 at pckbc0 (kbd slot)
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
wsmouse0 at pms0 mux 0
wdc0 at isa0 port 0x1f0/8 irq 14
wd0 at wdc0 channel 0 drive 0: <Maxtor 91152D8>
wd0: 16-sector PIO, LBA, 10991MB, 22510656 sectors
atapiscsi0 at wdc0 channel 0 drive 1
scsibus2 at atapiscsi0: 2 targets
cd0 at scsibus2 targ 0 lun 0: <MITSUMI, CD-ROM FX140S !B, e12> ATAPI
5/cdrom removable
wd0(wdc0:0:0): using BIOS timings
cd0(wdc0:0:1): using BIOS timings
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
npx0 at isa0 port 0xf0/16: reported by CPUID; using exception 16
vscsi0 at root
scsibus3 at vscsi0: 256 targets
softraid0 at root
scsibus4 at softraid0: 256 targets
root on wd0a (061ee26df5e9f130.a) swap on wd0b dump on wd0b
Automatic boot in progress: starting file system checks.
/dev/wd0a (061ee26df5e9f130.a): file system is clean; not checking
/dev/wd0k (061ee26df5e9f130.k): file system is clean; not checking
/dev/wd0d (061ee26df5e9f130.d): file system is clean; not checking
/dev/wd0f (061ee26df5e9f130.f): file system is clean; not checking
/dev/wd0g (061ee26df5e9f130.g): file system is clean; not checking
/dev/wd0h (061ee26df5e9f130.h): file system is clean; not checking
/dev/wd0j (061ee26df5e9f130.j): file system is clean; not checking
/dev/wd0i (061ee26df5e9f130.i): file system is clean; not checking
/dev/wd0e (061ee26df5e9f130.e): file system is clean; not checking
setting tty flags
pf enabled
machdep.allowaperture: 0 -> 2
net.inet.ip.forwarding: 0 -> 1
starting network
malo0: received beacon from 00:14:d1:54:f7:1a rssi 13 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 12 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 12 mode 11g
add net default: gateway 192.168malo0: received beacon from
00:14:d1:54:f7:1a rssi 12 mode 11g
.10.1
malo0: received beacon from 00:14:d1:54:f7:1a rssi 12 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 12 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 12 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 3 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 12 mode 11g
malo0: sending probe_req to ff:ff:ff:ff:ff:ff on channel 6 mode 11g
malo0: sending probe_req to ff:ff:ff:ff:ff:ff on channel 7 mode 11g
malo0: sending probe_req to ff:ff:ff:ff:ff:ff on channel 8 mode 11g
malo0: sending probe_req to ff:ff:ff:ff:ff:ff on channel 9 mode 11g
malo0: sending probe_req to ff:ff:ff:ff:ff:ff on channel 10 mode 11g
malo0: sending probe_req to ff:ff:ff:ff:ff:ff on channel 11 mode 11g
malo0: sending probe_req to ff:ff:ff:ff:ff:ff on channel 12 mode 11g
malo0: sending probe_req to ff:ff:ff:ff:ff:ff on channel 13 mode 11g
malo0: sending probe_req to ff:ff:ff:ff:ff:ff on channel 14 mode 11g
malo0: sending probe_req to ff:ff:ff:ff:ff:ff on channel 1 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 12 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 10 mode 11g
starting early daemons:malo0: received beacon from 00:14:d1:54:f7:1a rssi
12 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 12 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 10 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 10 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 10 mode 11g
malo0: received beacon from 00:14:d1:54:f7:1a rssi 11 mode 11g
malo0: end active scan
malo0: sending auth to 00:14:d1:54:f7:1a on channel 1 mode 11g
NMI ... going to debugger
Stopped at      ieee80211_recv_auth+0x23:       movzbl  0x18(%ecx),%edx
ddb> trace
ieee80211_recv_auth(d10d0030,d36b6200,d10e7000,f214aca0,b0) at
ieee80211_recv_a
uth+0x23
ieee80211_input(d10d0030,d36b6200,d10e7000,f214aca0,0) at
ieee80211_input+0x5b9

malo_rx_intr(d10d0000,c30,d10d0030,f214ad10,d030a135) at malo_rx_intr+0x42e
malo_intr(d10d0000,d10b7580) at malo_intr+0x78
Xrecurse_legacy7() at Xrecurse_legacy7+0xb5
--- interrupt ---
i386_bus_space_io_read_multi_2(1f0,0,f088c000,1000,d10b906c) at
i386_bus_space_
io_read_multi_2+0x13
wdc_default_read_raw_multi_2(d10b906c,f088c000,2000,0,d10e7000) at
wdc_default_
read_raw_multi_2+0x3a
wdc_ata_bio_intr(d10b906c,d362c000,1,d030a3bd,f2058000) at
wdc_ata_bio_intr+0x1
ee
wdcintr(d10b906c,d10d5c80) at wdcintr+0x63
Xrecurse_legacy14() at Xrecurse_legacy14+0xb9
--- interrupt ---
Xspllower(0,d081a60e,d0bab1ac,d0f9e360,0) at Xspllower+0xe
softintr_dispatch(0) at softintr_dispatch+0x5a
Xsoftclock() at Xsoftclock+0x12
--- interrupt ---
bzero(8bab000,0,f214af74,0,0) at bzero+0x6b
uvm_pagezero_thread(d361d43c) at uvm_pagezero_thread+0xd8
ddb> show registers
ds                  0x10
es                  0x10
fs                  0x20
gs                     0
edi           0xd10e7000        end+0x4a8358
esi           0xf214aca0
ebp           0xf214aa9c
ebx                  0x2
edx           0xd10e7000        end+0x4a8358
ecx           0xd36b4008        end+0x2a75360
eax                    0
eip           0xd0457ab3        ieee80211_recv_auth+0x23
cs                  0x50
eflags             0x202
esp           0xf214aa64
ss                  0x10
ieee80211_recv_auth+0x23:       movzbl  0x18(%ecx),%edx
ddb> ps
   PID   PPID   PGRP    UID  S       FLAGS  WAIT          COMMAND
  4688  17462  18745      0  3      0x2005  biowait       sh
 17462  18745  18745      0  3        0x83  piperd        sh
 18745      1  18745      0  3        0x8b  pause         sh
*31380      0      0      0  7     0x14200                zerothread
 30616      0      0      0  3     0x14200  aiodoned      aiodoned
 24503      0      0      0  3     0x14200  syncer        update
  8790      0      0      0  3     0x14200  cleaner       cleaner
 24281      0      0      0  3     0x14200  reaper        reaper
  6033      0      0      0  3     0x14200  pgdaemon      pagedaemon
 12745      0      0      0  3     0x14200  bored         crypto
 31638      0      0      0  3     0x14200  pftm          pfpurge
  6871      0      0      0  3     0x14200  apmev         apm0
 30047      0      0      0  3     0x14200  bored         softnet
 22868      0      0      0  3     0x14200  bored         systqmp
  6359      0      0      0  2     0x14200                systq
 22060      0      0      0  3  0x40014200                idle0
  2702      0      0      0  3     0x14200  kmalloc       kmthread
     1      0      1      0  3        0x82  wait          init
     0     -1      0      0  3     0x10200  scheduler     swapper
ddb>

--
Walter C. Daugherity                 Dept. of Computer Science & Engineering
Faculty Senate Speaker 2013-14       Texas A & M University
E-mail: [hidden email]         3112 TAMU
http://faculty.cs.tamu.edu/daugher   College Station, TX 77843-3112
              ---Not an official document of Texas A&M---