Bug 222107 - ifconfig down / up panics the kernel (non-sleepable iflib ctx lock held)
Summary: ifconfig down / up panics the kernel (non-sleepable iflib ctx lock held)
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: arm (show other bugs)
Version: CURRENT
Hardware: arm64 Any
: --- Affects Only Me
Assignee: Sean Bruno
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-09-06 18:25 UTC by Heinz N. Gies
Modified: 2017-11-06 17:07 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Heinz N. Gies 2017-09-06 18:25:39 UTC
when running ifconfig down em0 following by ifconfig up em0 the kernel panics:

root@thunderx:~ # ifconfig em0 up
link state changed to down
Kernel page fault with the following non-sleepable locks held:
exclusive sleep mutex em0 (iflib ctx lock) r = 0 (0xfffffd00041f2d40) locked @ /usr/src/sys/net/iflib.c:3636
stack backtrace:
#0 0xffff00000036d390 at witness_debugger+0x64
#1 0xffff00000036e6a0 at witness_warn+0x3fc
#2 0xffff0000005fcb3c at data_abort+0xe0
#3 0xffff0000005fc968 at do_el1h_sync+0xfc
#4 0xffff0000005e5874 at handle_el1h_sync+0x74
#5 0xffff00000040e9e0 at _iflib_fl_refill+0x370
#6 0xffff00000040e9e0 at _iflib_fl_refill+0x370
#7 0xffff00000040a770 at iflib_init_locked+0x3e0
#8 0xffff00000040f51c at iflib_if_ioctl+0x724
#9 0xffff0000003f6830 at ifioctl+0x1260
#10 0xffff000000372d28 at kern_ioctl+0x358
#11 0xffff000000372980 at sys_ioctl+0x158
#12 0xffff0000005fd548 at do_el0_sync+0x898
#13 0xffff0000005e59f4 at handle_el0_sync+0x74
  x0: fffffd000434ce00
  x1: fffffd0004155200
  x2:                1
  x3:                0
  x4:                0
  x5:                0
  x6:                0
  x7: ffff0006237765dc
  x8:               10
  x9: ffff0000005e2524
 x10:        100000000
 x11: ffff000000a949d8
 x12:                1
 x13: fffffd00041f2d40
 x14: ffff000040687e80
 x15: ffff00000085a078
 x16:         6caa9fec
 x17:         3bb1bdac
 x18: ffff0006237765a0
 x19: deadc0dedeadc0de
 x20: fffffd0004155200
 x21: fffffd000434ce00
 x22:                0
 x23:                1
 x24:                0
 x25: fffffd00bff92000
 x26:                0
 x27: ffff0000419ea000
 x28:                0
 x29: ffff000623776610
  sp: ffff0006237765a0
  lr: ffff00000040e9e4
 elr: ffff0000005e2584
spsr:         80000345
 far: deadc0dedeadc10e
 esr:         96000004
panic: data abort in critical section or under mutex
cpuid = 29
time = 1504643295
KDB: stack backtrace:
db_trace_self() at db_trace_self_wrapper+0x28
	 pc = 0xffff0000005e3ab8  lr = 0xffff000000087228
	 sp = 0xffff000623775fc0  fp = 0xffff0006237761d0

db_trace_self_wrapper() at vpanic+0x184
	 pc = 0xffff000000087228  lr = 0xffff00000030fd84
	 sp = 0xffff0006237761e0  fp = 0xffff000623776260

vpanic() at panic+0x44
	 pc = 0xffff00000030fd84  lr = 0xffff00000030fe0c
	 sp = 0xffff000623776270  fp = 0xffff0006237762f0

panic() at data_abort+0x250
	 pc = 0xffff00000030fe0c  lr = 0xffff0000005fccac
	 sp = 0xffff000623776300  fp = 0xffff0006237763b0

data_abort() at do_el1h_sync+0xfc
	 pc = 0xffff0000005fccac  lr = 0xffff0000005fc968
	 sp = 0xffff0006237763c0  fp = 0xffff0006237763f0

do_el1h_sync() at handle_el1h_sync+0x74
	 pc = 0xffff0000005fc968  lr = 0xffff0000005e5874
	 sp = 0xffff000623776400  fp = 0xffff000623776510

handle_el1h_sync() at _iflib_fl_refill+0x370
	 pc = 0xffff0000005e5874  lr = 0xffff00000040e9e0
	 sp = 0xffff000623776520  fp = 0xffff000623776610

_iflib_fl_refill() at _iflib_fl_refill+0x370
	 pc = 0xffff00000040e9e0  lr = 0xffff00000040e9e0
	 sp = 0xffff000623776620  fp = 0xffff0006237766e0

_iflib_fl_refill() at iflib_init_locked+0x3e0
	 pc = 0xffff00000040e9e0  lr = 0xffff00000040a770
	 sp = 0xffff0006237766f0  fp = 0xffff000623776750

iflib_init_locked() at iflib_if_ioctl+0x724
	 pc = 0xffff00000040a770  lr = 0xffff00000040f51c
	 sp = 0xffff000623776760  fp = 0xffff0006237767b0

iflib_if_ioctl() at ifioctl+0x1260
	 pc = 0xffff00000040f51c  lr = 0xffff0000003f6830
	 sp = 0xffff0006237767c0  fp = 0xffff000623776860

ifioctl() at kern_ioctl+0x358
	 pc = 0xffff0000003f6830  lr = 0xffff000000372d28
	 sp = 0xffff000623776870  fp = 0xffff0006237768c0

kern_ioctl() at sys_ioctl+0x158
	 pc = 0xffff000000372d28  lr = 0xffff000000372980
	 sp = 0xffff0006237768d0  fp = 0xffff0006237769a0

sys_ioctl() at do_el0_sync+0x898
	 pc = 0xffff000000372980  lr = 0xffff0000005fd548
	 sp = 0xffff0006237769b0  fp = 0xffff000623776a70

do_el0_sync() at handle_el0_sync+0x74
	 pc = 0xffff0000005fd548  lr = 0xffff0000005e59f4
	 sp = 0xffff000623776a80  fp = 0xffff000623776b90

handle_el0_sync() at 0x21ea8
	 pc = 0xffff0000005e59f4  lr = 0x0000000000021ea8
	 sp = 0xffff000623776ba0  fp = 0x0000ffffffffe320

KDB: enter: panic
[ thread pid 845 tid 100347 ]
Stopped at      bounce_bus_dmamap_sync+0x60:    ldr     x19, [x19, #48]