From owner-freebsd-current@FreeBSD.ORG Sat Dec 26 15:44:34 2009 Return-Path: Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 06F7110656A5 for ; Sat, 26 Dec 2009 15:44:34 +0000 (UTC) (envelope-from wkoszek@freebsd.czest.pl) Received: from freebsd.czest.pl (l95h.icis.pcz.pl [212.87.224.105]) by mx1.freebsd.org (Postfix) with ESMTP id 91D668FC08 for ; Sat, 26 Dec 2009 15:44:33 +0000 (UTC) Received: from freebsd.czest.pl (l95h.icis.pcz.pl [212.87.224.105]) by freebsd.czest.pl (8.14.2/8.14.2) with ESMTP id nBQFvKE2043356 for ; Sat, 26 Dec 2009 16:57:20 +0100 (CET) (envelope-from wkoszek@freebsd.czest.pl) Received: (from wkoszek@localhost) by freebsd.czest.pl (8.14.2/8.14.2/Submit) id nBQFvKif043355 for freebsd-current@FreeBSD.org; Sat, 26 Dec 2009 16:57:20 +0100 (CET) (envelope-from wkoszek) Date: Sat, 26 Dec 2009 16:57:20 +0100 From: "Wojciech A. Koszek" To: freebsd-current@FreeBSD.org Message-ID: <20091226155720.GK77520@FreeBSD.org> Mail-Followup-To: freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline User-Agent: Mutt/1.5.17 (2007-11-01) X-Greylist: Sender DNS name whitelisted, not delayed by milter-greylist-3.0 (freebsd.czest.pl [212.87.224.105]); Sat, 26 Dec 2009 16:57:20 +0100 (CET) Cc: Subject: LORs in bwi(4) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Dec 2009 15:44:34 -0000 Hi, firmware_get() present in subr_firmware.c uses msleep(9) on 'fwload'. Within bwi(4), we call it from within a code protected by bwi-specific lock. This is what I get as a result: Sleeping on "fwload" with the following non-sleepable locks held: exclusive sleep mutex bwi0 (network driver) r = 0 (0xc5f5500c) locked @ /usr/src/sys/modules/bwi/../../dev/bwi/if_bwi.c:1320 KDB: stack backtrace: db_trace_self_wrapper(c078e598,e61b6ac4,c0597cb5,c160e330,528,...) at db_trace_self_wrapper+0x26 kdb_backtrace(c160e330,528,ffffffff,c095badc,e61b6afc,...) at kdb_backtrace+0x29 _witness_debugger(c0790a19,e61b6b10,4,1,0,...) at _witness_debugger+0x25 witness_warn(5,c1660574,c078bf3a,c165fba4,4,...) at witness_warn+0x1fd _sleep(e61b6be4,c1660574,0,c165fba4,0,...) at _sleep+0x5f firmware_get(e61b6be4,40,c160f1b8,3,c5e73a80,...) at firmware_get+0x190 bwi_mac_init(c5f550b0,c5f550b0,0,c0546173,c5f5500c,...) at bwi_mac_init+0xe1d bwi_init_statechg(c5f5500c,0,c160e330,528,c5f68000,...) at bwi_init_statechg+0x7b bwi_ioctl(c5edb000,80206910,0,e61b6cd4,c0590e73,...) at bwi_ioctl+0x9a parent_updown(c5edb000,1,c078fe1d,51,c5f65d58,...) at parent_updown+0x22 taskqueue_run(c5f65d40,c5f65d58,0,c077f4d0,0,...) at taskqueue_run+0x103 taskqueue_thread_loop(c5f68074,e61b6d38,c07868e7,343,c0818fc0,...) at taskqueue_thread_loop+0x68 fork_exit(c0590f60,c5f68074,e61b6d38) at fork_exit+0xb8 fork_trampoline() at fork_trampoline+0x8 --- trap 0, eip = 0, esp = 0xe61b6d70, ebp = 0 --- -- Wojciech A. Koszek wkoszek@FreeBSD.org http://FreeBSD.czest.pl/~wkoszek/