From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 20:22:38 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6986E106566B for ; Tue, 6 Mar 2012 20:22:38 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id EF1A88FC13 for ; Tue, 6 Mar 2012 20:22:37 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 21:22:36 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 21:22:36 +0100 From: Marko Zec To: freebsd-virtualization@freebsd.org Date: Tue, 6 Mar 2012 21:22:15 +0100 User-Agent: KMail/1.9.10 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <201203062122.15426.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 20:22:36.0550 (UTC) FILETIME=[DEBE7A60:01CCFBD6] Cc: Adrian Chadd Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 20:22:38 -0000 On Tuesday 06 March 2012 21:13:00 Monthadar Al Jaberi wrote: > I am confused so whats the difference between having wlan in kernel > config or not? Cuase that seems the reason why we panic... linker > problems? Its not impossible. Have you tried to do CURVNET_SET(ss->ss_vap->iv_ifp->if_vnet) on entry to=20 scan_task() as I suggested earlier in this thread? Cheers, Marko > On Tue, Mar 6, 2012 at 9:06 PM, Adrian Chadd wro= te: > > Hi, > > > > The trouble here is that net80211 has quite a few other contexts that > > things are called from: > > > > * driver taskqueue; > > * net80211 taskqueue; > > * driver callouts; > > * net80211 callouts; > > * ioctls via net80211. > > > > That's in parallel with frame tx/rx and device ioctls. > > > > I don't personally have the time to go through net80211 and driver(s) > > at the moment to figure out what's going on. Since ath(4) does a bunch > > of frame processing in taskqueue context (and I'm trying to eliminate > > frame processing in _callout_ context, ew..) things can potentially > > get a bit hairy. > > > > > > Adrian > > > > On 6 March 2012 11:59, Marko Zec wrote: > >> On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: > >>> I added VNET_DEBUG and noticed this warning (original scan_task code): > >>> > >>> CURVNET_SET() recursion in sosend() line 1350, prev in kern_kldload() > >>> =A0 =A0 0xfffffe0002202c40 -> 0xfffffe0002202c40 > >>> KDB: stack backtrace: > >>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > >>> kdb_backtrace() at kdb_backtrace+0x37 > >>> sosend() at sosend+0xbd > >>> clnt_vc_call() at clnt_vc_call+0x3e6 > >>> clnt_reconnect_call() at clnt_reconnect_call+0xf5 > >>> newnfs_request() at newnfs_request+0x9fb > >>> nfscl_request() at nfscl_request+0x72 > >>> nfsrpc_lookup() at nfsrpc_lookup+0x1be > >>> nfs_lookup() at nfs_lookup+0x297 > >>> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 > >>> lookup() at lookup+0x3b8 > >>> namei() at namei+0x484 > >>> vn_open_cred() at vn_open_cred+0x1e2 > >>> link_elf_load_file() at link_elf_load_file+0xb3 > >>> linker_load_module() at linker_load_module+0x794 > >>> kern_kldload() at kern_kldload+0x145 > >>> sys_kldload() at sys_kldload+0x84 > >>> amd64_syscall() at amd64_syscall+0x39e > >>> Xfast_syscall() at Xfast_syscall+0xf7 > >> > >> You can safely ignore those. =A0Recursing on curvnet is harmless, but = in > >> certain cases can't be avoided. > >> > >> When injecting new CURVNET_SET() / CURVNET_RESTORE() points in the > >> existing code, those warnings are here to help us becoming aware that = we > >> are setting curvnet in a function which was invoked with an already > >> valid curvnet context. > >> > >> Marko