Date: Sun, 24 Jan 2010 19:39:11 +0100 From: "Emanuele A. Bagnaschi" <zephyrus.271@gmail.com> To: FreeBSD-STABLE Mailing List <freebsd-stable@freebsd.org> Subject: Problematic network performance with Marvell 8072 on HP Probook 4710s Message-ID: <20100124183911.GA2589@polaris>
next in thread | raw e-mail | index | archive | help
--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: <Marvell Yukon 88E8072 Gigabit Ethernet> port 0x2000-0x20ff mem 0x90100000-0x90103fff irq 17 at device 0.0 on pci134 msk0: <Marvell Technology Group Ltd. Yukon EX Id 0xb5 Rev 0x02> on mskc0 msk0: Ethernet address: 00:25:b3:52:fc:fa miibus0: <MII bus> 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<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=3D19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO= 4> ether 00:25:b3:52:fc:fa inet 192.168.1.4 netmask 0xffffff00 broadcast 192.168.1.255 media: Ethernet autoselect (100baseTX <full-duplex,flag0,flag1>) 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--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100124183911.GA2589>