From owner-freebsd-net@FreeBSD.ORG Sun Dec 2 14:25:30 2012 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8EE3E98C for ; Sun, 2 Dec 2012 14:25:30 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: from mail-ee0-f54.google.com (mail-ee0-f54.google.com [74.125.83.54]) by mx1.freebsd.org (Postfix) with ESMTP id 19CD38FC0C for ; Sun, 2 Dec 2012 14:25:29 +0000 (UTC) Received: by mail-ee0-f54.google.com with SMTP id c13so1375389eek.13 for ; Sun, 02 Dec 2012 06:25:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:message-id:mime-version:content-type :content-disposition:user-agent; bh=i+4l6owSa/UKNxUdrhKcWTzEy90bee3D3Vvr1nhCX9M=; b=F256IzNcsYSEZS3OXuGCaiaqE+bydGBwESz6MiYtTDY/QC6ZSFXI0I3FLLxb5/2sdu gN+idF8zjBzuZhjauiXkxN9JanlKeUquEMAhHvceBJmOkJxt5jYiCTquFDMy0igBiSlt E+KDgyij953iyoVUx78ikX+NXmKMg2W+cZtJRi6zfY757dsBua1lHTJjzz+eqg2+kS08 p5XFqvCmaeg/vezIjZsvAb+y3f7G3Ch7DZJehLJRhca/HEoG3CwerH0iGjZBGeq02P9Y v4w4ZG22Sis6LVLxpwDCV4m4eaT4PkBkzhvwZux+bQuoQ1Mc/2wqs7HA84YU/RYgmeZQ NXSQ== Received: by 10.14.176.66 with SMTP id a42mr26060180eem.34.1354458329068; Sun, 02 Dec 2012 06:25:29 -0800 (PST) Received: from localhost ([178.150.115.244]) by mx.google.com with ESMTPS id w3sm24784183eel.17.2012.12.02.06.25.27 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 02 Dec 2012 06:25:27 -0800 (PST) Sender: Mikolaj Golub Date: Sun, 2 Dec 2012 16:25:25 +0200 From: Mikolaj Golub 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> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 02 Dec 2012 14:25:30 -0000 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