From owner-cvs-all Sun Nov 10 4:23:24 2002 Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 3EE2737B401; Sun, 10 Nov 2002 04:23:18 -0800 (PST) Received: from is1.mh.itc.u-tokyo.ac.jp (is1.mh.itc.u-tokyo.ac.jp [133.11.205.11]) by mx1.FreeBSD.org (Postfix) with ESMTP id 55E6643E42; Sun, 10 Nov 2002 04:23:17 -0800 (PST) (envelope-from simokawa@sat.t.u-tokyo.ac.jp) Received: from is1.mh.itc.u-tokyo.ac.jp (is1.mh.itc.u-tokyo.ac.jp [127.0.0.1]) by is1.mh.itc.u-tokyo.ac.jp (Postfix) with ESMTP id 3E76E2180E6; Sun, 10 Nov 2002 21:23:11 +0900 (JST) Received: from mailhosting.itc.u-tokyo.ac.jp (IDENT:mirapoint@mailhosting.itc.u-tokyo.ac.jp [133.11.205.3]) by is1.mh.itc.u-tokyo.ac.jp (8.11.3/8.11.3) with ESMTP id gAACNBu04353; Sun, 10 Nov 2002 21:23:11 +0900 Received: from ett.sat.t.u-tokyo.ac.jp (nat.keisu.t.u-tokyo.ac.jp [133.11.68.2]) by mailhosting.itc.u-tokyo.ac.jp (Mirapoint Messaging Server MOS 2.9.3.2) with ESMTP id AHI09186; Sun, 10 Nov 2002 21:23:09 +0900 (JST) Date: Sun, 10 Nov 2002 21:23:09 +0900 Message-ID: From: Hidetoshi Shimokawa To: Poul-Henning Kamp Cc: Hidetoshi Shimokawa , cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org, takashi@yha.att.ne.jp Subject: Re: cvs commit: src/sys/dev/nge if_nge.c if_ngereg.h In-Reply-To: <16553.1036649695@critter.freebsd.dk> References: <16553.1036649695@critter.freebsd.dk> User-Agent: Wanderlust/2.11.0 (Wonderwall) REMI/1.14.3 (Matsudai) FLIM/1.14.3 (=?ISO-8859-1?Q?Unebigory=F2mae?=) APEL/10.3 MULE XEmacs/21.4 (patch 8) (Honest Recruiter) (i386--freebsd) X-Face: OE([KxWyJI0r[R~S/>7ia}SJ)i%a,$-9%7{*yihQk|]gl}2p#"oXmX/fT}Bn7: #j7i14gu$jgR\S*&C3R/pJX List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG At Thu, 07 Nov 2002 07:14:55 +0100, Poul-Henning Kamp wrote: > > In message , Hidetoshi Shimokawa writes > : > >> > Modified files: > >> > sys/dev/nge if_nge.c if_ngereg.h > >> > Log: > >> > Add support for DEVICE_POLLING. > >> > > >> Hang on for a second: > >> > >> This chip supports interrupt pacing so I would like to see > >> some documentation for an improvement from DEVICE_POLLING over > >> tuning the interrupt pacing in the chip, before we even think > >> about MFC, much less let this commit stay in the tree. > > > >I think interrupt pacing usually does good job too. > > > >But still, I think there could be some cases device polling does > >better job (ex. multiple busy NICs.) and it's a good thing > >to give a option to users. > > > >> What tests have been run ? > >> What are the numbers ? (and please, include a standard deviation!) > > > >I don't have any numbers by myself. I'm asking for the original author > >whether he has. > > Yes please. Unless there is documentation that this actually helps, > it should be backed out. I don't understand why you want it to be backed out. Do you have any good reason to believe that device polling doesn't help in most cases? Anyway, the numbers show that device polling improves the performance and changing interrupt holdtime you suggested doesn't help. The current holdtime (100us) seems the optimal and increasing it gives poor TX performance. I think the improvement doesn't came from difference between polling and interrupt but from the nature of device polling that limits the number of processing I/Os at once (by kern.polling.each_burst). It gives a chance to resume transmit processes to upper protocol layer and gives better utilization of the bandwidth. Here is the numbers submitted by Oono-san . ----------------------------------------------------------------- * Server OS: FreeBSD 4.7-STABLE CPU: Celeron 1.2GHz Mem: 1GB NIC: CAMEO SOHO-GA2500T http://www.cameo.com.tw/pdf/SOHO-GA2500T.pdf * Client OS: Windows2000Pro SP3 CPU: AthlonXP 1900+ Mem: 1GB NIC: CAMEO SOHO-GA2500T http://www.cameo.com.tw/pdf/SOHO-GA2500T.pdf * Connection Connected directly with Cat5e cross cable. * Measurement - Measured by the transfer rate(KB/sec) of FTP. - Using Jumbo frame(9014Byte). - Measure 7 times for each configuration and take 5 measurement except 2 outlier(max and min). - Use /dev/null(PUT) and nul(GET) to reduce Disk I/O. FTP GET Client> polling enabled 50751.76 50891.66 50756.12 51027.92 50756.12 holdoff time 0 (0x00) interrupt pacing off 45282.53 45338.13 45338.13 45338.13 45334.66 holdoff time 100us (0x01) default 43662.79 43763.05 44066.62 43511.65 43511.65 holdoff time 300us (0x03) 19400.43 19350.86 19410.63 19401.07 19410.63 holdoff time 500us (0x05) 11674.07 11674.07 11673.84 11674.07 11674.07 holdoff time 1000us (0x0A) 5822.20 5821.55 5821.55 5811.22 5821.55 FTP PUT polling enabled 71612.27 71215.19 70678.46 71473.65 71482.30 holdoff time 0 (0x00) interrupt pacing off 61280.08 61184.88 61388.32 61484.15 61184.88 holdoff time 100us (0x01) default 62498.81 66681.85 66810.05 66569.15 66569.15 holdoff time 300us (0x03) 68745.78 68745.78 68753.78 68994.66 68753.78 holdoff time 500us (0x05) 64966.05 64966.05 64859.07 64859.07 64966.05 holdoff time 1000us (0x0A) 52085.09 52154.06 52154.06 52080.50 52011.73 --------------------------------------------------------- /\ Hidetoshi Shimokawa \/ simokawa@sat.t.u-tokyo.ac.jp PGP public key: http://www.sat.t.u-tokyo.ac.jp/~simokawa/pgp.html To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message