From owner-freebsd-net Thu Mar 21 2:25:35 2002 Delivered-To: freebsd-net@freebsd.org Received: from claven.cs.wisc.edu (claven.cs.wisc.edu [128.105.6.18]) by hub.freebsd.org (Postfix) with ESMTP id 9A94237B400 for ; Thu, 21 Mar 2002 02:25:29 -0800 (PST) Received: from tux12.cs.wisc.edu (tux12.cs.wisc.edu [128.105.111.112]) by claven.cs.wisc.edu (8.9.2/8.9.2) with ESMTP id EAA30962 for ; Thu, 21 Mar 2002 04:25:28 -0600 (CST) Received: from localhost (haryadi@localhost) by tux12.cs.wisc.edu (8.9.2/8.9.2) with ESMTP id EAA06417 for ; Thu, 21 Mar 2002 04:25:28 -0600 (CST) X-Authentication-Warning: tux12.cs.wisc.edu: haryadi owned process doing -bs Date: Thu, 21 Mar 2002 04:25:28 -0600 (CST) From: Haryadi Gunawi To: net@freebsd.org Subject: bug in xl_intr (an 'xl' interrupt function)? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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 Hi, I have FreeBSD 4.4, and I wrote simple TCP and UDP progras bacically the client sends some bytes and the server echo the messages. I use Ethernet which MTU is around 1400++ (I forget exactly), and the NIC is "3Com Fast EtherLink XC PCI3Com Fast EtherLink XC PCI". Using sample based profiling system I can obtain the timing distribution for "xl_intr" function (in src/sys/pci/if_xl.c): Bytes %-tcp %-udp 0200 0.01 0.01 1000 0.02 0.01 1200 0.01 0.01 1400 0.03 0.01 1450 18.12 0.01 <---- 1500 21.78 0.01 1600 19.07 0.01 3000 16.06 0.01 What the table means is that (for the 1st row), If I ran the program using TCP, when sending and receiving 200 bytes messages, the xl_intr routine only spend 0.01 % of the Overhead Processing Time (not include the transmission time). --> Now the weird result (for TCP) is that after it hits the MTU (1400+), the xl_intr suddenly jumps SPENDING MORE THAN 15% of the overhead processing time. I don't know whether this is the correct result or not. But it seems a bug to me. I don't think a device protocol should spend that much time. The long time spent is not in other functions called from xl_intr, but in the body of the xl_intr itself. Can anyone help me find out what's going on here? or if this is too details, can someone please tell me where I can find the 'xl' functions documentation (very detail one, the structure, implementation, etc ...). Thank you very much for your time appreciate it Haryadi To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message