From owner-cvs-all Mon Feb 11 17:48: 3 2002 Delivered-To: cvs-all@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id 4693C37B402; Mon, 11 Feb 2002 17:47:53 -0800 (PST) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.3/8.9.3) with ESMTP id UAA26314; Mon, 11 Feb 2002 20:47:52 -0500 (EST) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.11.6/8.9.1) id g1C1lM149426; Mon, 11 Feb 2002 20:47:22 -0500 (EST) (envelope-from gallatin@cs.duke.edu) Date: Mon, 11 Feb 2002 20:47:22 -0500 From: Andrew Gallatin To: cvs-committers@freebsd.org, cvs-all@freebsd.org Cc: freebsd-alpha@freebsd.org Subject: Re: cvs commit: src/sys/alpha/include cpufunc.h Message-ID: <20020211204721.A49383@grasshopper.cs.duke.edu> References: <200202120120.g1C1Ko136446@freefall.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <200202120120.g1C1Ko136446@freefall.freebsd.org>; from gallatin@FreeBSD.org on Mon, Feb 11, 2002 at 05:20:50PM -0800 X-Operating-System: FreeBSD 4.3-RELEASE on an i386 Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Andrew Gallatin [gallatin@FreeBSD.org] wrote: > gallatin 2002/02/11 17:20:50 PST > > Modified files: (Branch: RELENG_4) > sys/alpha/include cpufunc.h > Log: > add enable_intr() and disable_intr() which are required for DEVICE_POLL > in -stable FWIW, device_polling works just fine on alpha. I'm sticking to the mandatory MFC waiting period before committing the files file changes though.. Interrupts are very expensive on alpha because of the interaction with palcode. People who are using alphas as routers should benefit greatly from polling. Here is a brief glimpse at the performance improvement polling gives you when blasting UDP packets at a 500MHz monet receiver, dc0 100Mb/full duplex: Without polling: % netperf -tUDP_STREAM -Hmonet -- -m 1 UDP UNIDIRECTIONAL SEND TEST to monet Socket Message Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs # # 10^6bits/sec 9216 1 10.01 1181764 4041221 0.94 41600 10.01 534 0.00 The recv CPU is maxed out, and is machine unresponsive. Eg, without polling nearly all packets that we manage to receive are dropped on the floor due to livelock. This isn't just us sucking -- Tru64 5.1 on the same box behaves nearly identically. (well, it manages to get a whopping 120 more packets). With polling: % netperf -tUDP_STREAM -Hmonet -- -m 1 UDP UNIDIRECTIONAL SEND TEST to monet Socket Message Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs # # 10^6bits/sec 9216 1 10.00 1180832 4052365 0.94 41600 10.00 1163905 0.93 The recv CPU is at 30% idle. Nice job, Luigi! Drew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message