From owner-freebsd-arch@FreeBSD.ORG Mon Aug 30 22:08:35 2004 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id AA08516A4CF; Mon, 30 Aug 2004 22:08:35 +0000 (GMT) Received: from harmony.village.org (rover.village.org [168.103.84.182]) by mx1.FreeBSD.org (Postfix) with ESMTP id 49B0943D31; Mon, 30 Aug 2004 22:08:35 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.12.11/8.12.11) with ESMTP id i7UM5RA3057331; Mon, 30 Aug 2004 16:05:28 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Mon, 30 Aug 2004 16:05:34 -0600 (MDT) Message-Id: <20040830.160534.104033700.imp@bsdimp.com> To: sah@softcardsystems.com From: "M. Warner Losh" In-Reply-To: References: <20040830.120124.28086427.imp@bsdimp.com> <41336DC8.7080808@freebsd.org> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: scottl@freebsd.org cc: freebsd-arch@freebsd.org Subject: Re: splxxx level? X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 30 Aug 2004 22:08:35 -0000 In message: Sam writes: : Wow guys, this is great stuff, thanks! : : Here's what I've discovered so far and again, : correct me if I'm wrong. : : In strategy, I need to protect from my callout : and netisr running. In my netisr, I need to : protect from my callout running. In my callout, : I need to protect from my netisr running. : : It looks like I can use splnet() everywhere *except* : where I'm pulling mbufs off of the mbuf queue in the : netisr routine. There I'll have to use splimp() to : keep from banging heads with the hardware. : : I think this is the optimum spl-ing as it will allow : the network hardware to keep queueing up packets as I : process them. Comments? I'd be more inclined to use splimp() in all places because the network code depends on it. There are some subtle dependencies that one will run into if one only uses splnet(). Warner