Date: Sun, 2 Dec 2012 16:25:25 +0200 From: Mikolaj Golub <trociny@FreeBSD.org> To: freebsd-net@freebsd.org Subject: lagg with wireless iface: iieee80211_waitfor_parent is called with a non-sleepable lock held Message-ID: <20121202142524.GA8207@gmail.com>
next in thread | raw e-mail | index | archive | help
Hi, On my laptop I have lagg setup in failover mode between wired and wireless interfaces, as it is decribed in handbook: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-aggregation.html#networking-lagg-wired-and-wireless On start I have been observing witness warnings like below: taskqueue_drain with the following non-sleepable locks held: exclusive rw if_lagg rwlock (if_lagg rwlock) r = 0 (0xfffffe000aa9d408) locked @ /home/golub/freebsd/base/head/sys/modules/if_lagg/../../net/if_lagg.c:1065 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b kdb_backtrace() at kdb_backtrace+0x39 witness_warn() at witness_warn+0x4b2 taskqueue_drain() at taskqueue_drain+0x3a ieee80211_waitfor_parent() at ieee80211_waitfor_parent+0x28 ieee80211_ioctl() at ieee80211_ioctl+0x3e9 if_setflag() at if_setflag+0xc0 ifpromisc() at ifpromisc+0x2c lagg_ioctl() at lagg_ioctl+0x7d5 if_setflag() at if_setflag+0xc0 ifpromisc() at ifpromisc+0x2c bridge_ioctl_add() at bridge_ioctl_add+0x454 bridge_ioctl() at bridge_ioctl+0x268 in_control() at in_control+0x219 ifioctl() at ifioctl+0x1896 kern_ioctl() at kern_ioctl+0x1b0 sys_ioctl() at sys_ioctl+0x11f amd64_syscall() at amd64_syscall+0x282 Xfast_syscall() at Xfast_syscall+0xfb --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x8011815ca, rsp = 0x7fffffffd3f8, rbp = 0x7fffffffd4a0 --- and eventually the panic "Sleeping thread owns a non-sleepable lock" in lagg_input, when a packet arrives simultaneously with ifconfig run. The lagg gets if_lagg rwlock before going to setflag, which ends up calling ieee80211_ioctl and ieee80211_waitfor_parent (wait for all deferred parent interface tasks to complete). Does anybody see a way how it could be solved? -- Mikolaj Golub
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20121202142524.GA8207>