From owner-freebsd-stable@FreeBSD.ORG Sun Jan 24 19:08:08 2010 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4A5A5106566C for ; Sun, 24 Jan 2010 19:08:08 +0000 (UTC) (envelope-from zephyrus.271@gmail.com) Received: from mail-fx0-f226.google.com (mail-fx0-f226.google.com [209.85.220.226]) by mx1.freebsd.org (Postfix) with ESMTP id 927398FC08 for ; Sun, 24 Jan 2010 19:08:07 +0000 (UTC) Received: by fxm26 with SMTP id 26so405400fxm.13 for ; Sun, 24 Jan 2010 11:08:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:received:date:from:to:subject :message-id:mime-version:content-type:content-disposition:user-agent; bh=iybwWxg9A5ty8dQ4BZxMmbnfYeCZGgdOfs9QdkYS5AY=; b=ffWXZMkooH3W/0FemGilGjmVyxQoobrV/V5ijUXHFJJX957kDiJqp5IjbFLldvhh0t zKuYBNtssa5TBlPNuW4DyjpDCwsb/RlID18YjqNOCvZX6aNsfUMu4JiFaj/zr9+AeqJa KfTiEjrRGDYrSDsUYUS2xn6Y76Sqwnl2XFDyI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:subject:message-id:mime-version:content-type :content-disposition:user-agent; b=YGRLRtOhzsx65Xd2eLUn0A4QkKoBhJtttXbgTuqvc1cRL4iwmrLnN1ahPqlo+l/7Ln 4tl7TkbhkwyDmJLxdjB53Mu0keFBIVgqX4CXWMOW+bnhpHpp1NR/gCxeD45uTeuV4YXl slbcq0y4vjrpPLv/CYJrm1XRWJ+nE8QB9IzKw= Received: by 10.223.4.22 with SMTP id 22mr5771657fap.97.1264358358036; Sun, 24 Jan 2010 10:39:18 -0800 (PST) Received: from polaris.localdomain (81-174-11-81.static.ngi.it [81.174.11.81]) by mx.google.com with ESMTPS id 19sm5678398fkr.18.2010.01.24.10.39.16 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sun, 24 Jan 2010 10:39:16 -0800 (PST) Received: by polaris.localdomain (Postfix, from userid 1000) id 94661143; Sun, 24 Jan 2010 19:39:11 +0100 (CET) Date: Sun, 24 Jan 2010 19:39:11 +0100 From: "Emanuele A. Bagnaschi" To: FreeBSD-STABLE Mailing List Message-ID: <20100124183911.GA2589@polaris> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="aT9PWwzfKXlsBJM1" Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) Subject: Problematic network performance with Marvell 8072 on HP Probook 4710s X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 24 Jan 2010 19:08:08 -0000 --aT9PWwzfKXlsBJM1 Content-Type: multipart/mixed; boundary="i0/AhcQY5QxfSsSZ" Content-Disposition: inline --i0/AhcQY5QxfSsSZ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi, I've been experiencing a troubling issue with a Marvell 8072 NIC on an HP ProBook 4710s.=20 I first noticed that there is a problem while transferring some files through scp to a FreeBSD8-STABLE server: CPUs usage sky-rocketed to 100% (s= ystem) and network performance was awful (about 1.8 MiB/s). I tried and succeeded in reproducing the issue with 'ttcp'. I decided to use this little benchmark because is so simple (it is linked only agains= t libc) that I can be sure that the problem doesn't depend on scp/ssh or other parts of the sy= stem. This is the output of 'uname -a': FreeBSD polaris 8.0-STABLE FreeBSD 8.0-STABLE #24: Sun Jan 17 21:08:02 CET 2010 toor@polaris:/usr/obj/usr/src/sys/POLARIS amd64 Here it's some relevant information to identify the NIC: first from 'dmesg' mskc0: port 0x2000-0x20ff mem 0x90100000-0x90103fff irq 17 at device 0.0 on pci134 msk0: on mskc0 msk0: Ethernet address: 00:25:b3:52:fc:fa miibus0: on msk0 mskc0: [FILTER] msk0: link state changed to DOWN msk0: link state changed to UP and then from 'pciconf -lv' mskc0@pci0:134:0:0: class=3D0x020000 card=3D0x3074103c chip=3D0x436c11ab rev=3D0x10 hdr=3D0x00 vendor =3D 'Marvell Semiconductor (Was: Galileo Technology Ltd)' device =3D 'Marvell 8072 Ethernet Nic (88E8072)' class =3D network subclass =3D ethernet Here it's the output of 'ifconfig': msk0: flags=3D8843 metric 0 mtu 1500 options=3D19b ether 00:25:b3:52:fc:fa inet 192.168.1.4 netmask 0xffffff00 broadcast 192.168.1.255 media: Ethernet autoselect (100baseTX ) satus: active Attached you will find the results of my tests, I hope that the file will be self-explanatory. I'm wondering, are there any other tunable parameters (apart from MSI on/of= f) I should try to modify? Should I file a PR? Are there any other interesting d= ata I should gather? With the proper guide I'm also available to contribute some code myself. Best regards --=20 Emanuele A. Bagnaschi --i0/AhcQY5QxfSsSZ Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=test_results Content-Transfer-Encoding: quoted-printable * notebook - Linux 2.6.32 - hostname: elsinore * * server - FreeBSD8-STABLE - hostname:atlantis *=20 FIRST RUN - elsinore transmits, atlantis receives elsinore --> atlantis (output on elsinore) ttcp -n 12800 -t -s atlantis ttcp-t: buflen=3D8192, nbuf=3D12800, align=3D16384/0, port=3D5001 tcp -> = atlantis ttcp-t: socket ttcp-t: connect ttcp-t: 104857600 bytes in 8.87 real seconds =3D 11538.31 KB/sec +++ ttcp-t: 12800 I/O calls, msec/call =3D 0.71, calls/sec =3D 1442.29 atlantis <-- elsinore (output on atlantis) ttcp -r -s ttcp-r: buflen=3D8192, nbuf=3D2048, align=3D16384/0, port=3D5001 tcp ttcp-r: socket ttcp-r: accept from 192.168.1.4 ttcp-r: 16777216 bytes in 1.43 real seconds =3D 11464.61 KB/sec +++ ttcp-r: 11562 I/O calls, msec/call =3D 0.13, calls/sec =3D 8090.45 ttcp-r: 0.0user 0.0sys 0:01real 3% 14i+1022d 502maxrss 0+2pf 11559+42csw SECOND RUN - elsinore receives, atlantis transmits elsinore <-- atlantis (output on elsinore) ttcp -r -s ttcp-r: buflen=3D8192, nbuf=3D2048, align=3D16384/0, port=3D5001 tcp ttcp-r: socket ttcp-r: accept from 192.168.1.1 ttcp-r: 104857600 bytes in 9.00 real seconds =3D 11372.89 KB/sec +++ ttcp-r: 29235 I/O calls, msec/call =3D 0.32, calls/sec =3D 3246.94 ttcp-r: 0.0user 0.7sys 0:09real 8% 0i+0d 910maxrss 0+2pf 29195+456csw atlantis --> elsinore (output on atlantis) ttcp -t -s -n 12800 elsinore ttcp-t: buflen=3D8192, nbuf=3D12800, align=3D16384/0, port=3D5001 tcp -> = elsinore ttcp-t: socket ttcp-t: connect ttcp-t: 104857600 bytes in 8.99 real seconds =3D 11394.04 KB/sec +++ ttcp-t: 12800 I/O calls, msec/call =3D 0.72, calls/sec =3D 1424.26 ttcp-t: 0.0user 0.2sys 0:08real 3% 15i+1095d 578maxrss 0+2pf 27143+2543csw ----- * notebook - FreeBSD8-STABLE - hostname:polaris - msk with MSI enabled * * server - FreeBSD8-STABLE - hostname:atlantis * FIRST RUN - polaris transmits, atlantis receives polaris --> atlantis (output on polaris) ttcp -t -s -n 12800 atlantis ttcp-t: buflen=3D8192, nbuf=3D12800, align=3D16384/0, port=3D5001 tcp -> = atlantis ttcp-t: socket ttcp-t: connect ttcp-t: 104857600 bytes in 13.63 real seconds =3D 7514.90 KB/sec +++ ttcp-t: 12800 I/O calls, msec/call =3D 1.09, calls/sec =3D 939.36 ttcp-t: 0.1user 10.7sys 0:13real 80% 5i+408d 674maxrss 0+1pf 1004+1525csw atlantis <-- polaris (output on atlantis) ttcp -r -s ttcp-r: buflen=3D8192, nbuf=3D2048, align=3D16384/0, port=3D5001 tcp ttcp-r: socket ttcp-r: accept from 192.168.1.4 ttcp-r: 104857600 bytes in 13.63 real seconds =3D 7512.69 KB/sec +++ ttcp-r: 76875 I/O calls, msec/call =3D 0.18, calls/sec =3D 5640.02 ttcp-r: 0.0user 0.3sys 0:13real 2% 16i+1168d 502maxrss 0+2pf 76849+2128csw SECOND RUN - polaris receives, atlantis transmits polaris <-- atlantis (output on polaris) ttcp -r -s ttcp-r: buflen=3D8192, nbuf=3D2048, align=3D16384/0, port=3D5001 tcp ttcp-r: socket ttcp-r: accept from 192.168.1.1 ttcp-r: 104857600 bytes in 53.68 real seconds =3D 1907.67 KB/sec +++ ttcp-r: 14021 I/O calls, msec/call =3D 3.92, calls/sec =3D 261.21 ttcp-r: 0.0user 14.9sys 0:53real 27% 7i+563d 600maxrss 0+2pf 1176+2765csw atlantis --> polaris (output on polaris) ttcp -t -s -n 12800 elsinore ttcp-t: buflen=3D8192, nbuf=3D12800, align=3D16384/0, port=3D5001 tcp -> = elsinore ttcp-t: socket ttcp-t: connect ttcp-t: 104857600 bytes in 53.59 real seconds =3D 1910.75 KB/sec +++ ttcp-t: 12800 I/O calls, msec/call =3D 4.29, calls/sec =3D 238.84 ttcp-t: 0.0user 0.2sys 0:53real 0% 17i+1207d 576maxrss 0+2pf 40032+473csw ----- * notebook - FreeBSD8-STABLE - hostname:polaris - msk with MSI disabled * * server - FreeBSD8-STABLE - hostname:atlantis * FIRST RUN - polaris transmits, atlantis receives polaris --> atlantis (output on polaris) ttcp -t -s -n 12800 atlantis ttcp-t: buflen=3D8192, nbuf=3D12800, align=3D16384/0, port=3D5001 tcp -> = atlantis ttcp-t: socket ttcp-t: connect ttcp-t: 104857600 bytes in 13.27 real seconds =3D 7716.57 KB/sec +++ ttcp-t: 12800 I/O calls, msec/call =3D 1.06, calls/sec =3D 964.57 ttcp-t: 0.2user 10.3sys 0:13real 79% 5i+419d 674maxrss 0+1pf 823+1938csw atlantis <-- polaris (output on atlantis) ttcp -r -s = = = ~ ttcp-r: buflen=3D8192, nbuf=3D2048, align=3D16384/0, port=3D5001 tcp ttcp-r: socket ttcp-r: accept from 192.168.1.4 ttcp-r: 104857600 bytes in 13.27 real seconds =3D 7713.85 KB/sec +++ ttcp-r: 76800 I/O calls, msec/call =3D 0.18, calls/sec =3D 5785.39 ttcp-r: 0.0user 0.3sys 0:13real 2% 15i+1065d 502maxrss 0+2pf 76778+2373csw SECOND RUN - polaris receives, atlantis transmits polaris <-- atlantis (output on polaris) ttcp -r -s ttcp-r: buflen=3D8192, nbuf=3D2048, align=3D16384/0, port=3D5001 tcp ttcp-r: socket ttcp-r: accept from 192.168.1.1 ttcp-r: 104857600 bytes in 59.32 real seconds =3D 1726.28 KB/sec +++ ttcp-r: 13499 I/O calls, msec/call =3D 4.50, calls/sec =3D 227.57 ttcp-r: 0.0user 13.4sys 0:59real 22% 7i+545d 600maxrss 0+2pf 710+2732csw atlantis --> polaris (output on atlantis) ttcp -t -s -n 12800 elsinore ttcp-t: buflen=3D8192, nbuf=3D12800, align=3D16384/0, port=3D5001 tcp -> = elsinore ttcp-t: socket ttcp-t: connect ttcp-t: 104857600 bytes in 59.22 real seconds =3D 1729.15 KB/sec +++ ttcp-t: 12800 I/O calls, msec/call =3D 4.74, calls/sec =3D 216.14 ttcp-t: 0.0user 0.2sys 0:59real 0% 14i+1029d 576maxrss 0+2pf 41750+287csw --i0/AhcQY5QxfSsSZ-- --aT9PWwzfKXlsBJM1 Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iEYEARECAAYFAktck88ACgkQrwnEPevYb9UIOQCgqjvhUdhFl5hPM817bQw0pgWt QZwAnRGfVgm8zhd1yue7XYMSpF/B63dW =TDK7 -----END PGP SIGNATURE----- --aT9PWwzfKXlsBJM1--