From owner-freebsd-net Wed Mar 12 10: 2:28 2003 Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id ABA5137B401 for ; Wed, 12 Mar 2003 10:02:27 -0800 (PST) Received: from mail.flugsvamp.com (ts46-01-qdr3643.mdfrd.or.charter.com [68.118.36.71]) by mx1.FreeBSD.org (Postfix) with ESMTP id CF21C43FCB for ; Wed, 12 Mar 2003 10:02:26 -0800 (PST) (envelope-from jlemon@flugsvamp.com) Received: (from jlemon@localhost) by mail.flugsvamp.com (8.12.6/8.12.6) id h2CI1lmT013659; Wed, 12 Mar 2003 12:01:47 -0600 (CST) (envelope-from jlemon) Date: Wed, 12 Mar 2003 12:01:47 -0600 (CST) From: Jonathan Lemon Message-Id: <200303121801.h2CI1lmT013659@mail.flugsvamp.com> To: brandt@fokus.fraunhofer.de, net@freebsd.org Subject: Re: mallocing from if_start X-Newsgroups: local.mail.freebsd-net In-Reply-To: Organization: Cc: Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org In article you write: > >Hi all, > >I was under the impression that the if_start function is NOT called from >an interrupt context, so I should be able to call uma_zalloc_arg(..., >M_WAITOK) there. I get however > >Mar 12 18:12:49 catssrv kernel: malloc() of "en dma maps" with the >following non-sleepablelocks held: >Mar 12 18:12:49 catssrv kernel: exclusive sleep mutex netisr lock r = 0 >(0xc022d9c0) locked @ /usr/src/sys/net/netisr.c:209 > >I'm wrong with my assumption? if_start() can be called from interrupt context from the bridging, fast-forwarding, (and now) direct dispatch codepaths. That being said, the message can be ignored, I'll rework things to use a gate instead of a mutex, although this seems to be catching some hidden bugs. -- Jonathan To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message