Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Aug 2013 16:49:35 +0200
From:      Harald Schmalzbauer <h.schmalzbauer@omnilan.de>
To:        Bryan Venteicher <bryanv@daemoninthecloset.org>
Cc:        FreeBSD Stable <freebsd-stable@freebsd.org>, current@freebsd.org
Subject:   Re: [CFT] VMware vmxnet3 ethernet driver
Message-ID:  <5214D37F.5000307@omnilan.de>
In-Reply-To: <601099152.721.1375661537866.JavaMail.root@daemoninthecloset.org>
References:  <601099152.721.1375661537866.JavaMail.root@daemoninthecloset.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
--------------enig68C5E2ACB8ED11F3249CE469
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

 Bez=FCglich Bryan Venteicher's Nachricht vom 05.08.2013 02:12 (localtime=
):
> Hi,
>
> I've ported the OpenBSD vmxnet3 ethernet driver to FreeBSD. I did a
> lot of cleanup, bug fixes, new features, etc (+2000 new lines) along
> the way so there is not much of a resemblance left.
>
> The driver is in good enough shape I'd like additional testers. A patch=

> against -CURRENT is at [1]. Alternatively, the driver and a Makefile is=

> at [2]; this should compile at least as far back as 9.1. I can look at
> 8-STABLE if there is interest.
>
> Obviously, besides reports of 'it works', I'm interested performance vs=

> the emulated e1000, and (for those using it) the VMware tools vmxnet3
> driver. Hopefully it is no worse :)

Hello Bryan,

thanks a lot for your hard work!

It seems if_vmx doesn't support jumbo frames. If I set mtu 9000, I get
=BBvmx0: cannot populate Rx queue 0=AB, I have no problems using jumbo
frames with vmxnet3.

I took a oldish host (4x2,8GHz Core2[LGA775]) with recent software: ESXi
5.1U1 and FreeBSD-9.2-RC2
Two guests are connected to one MTU9000 "VMware Software Switch".

Simple iperf (standard TCP) results:

vmxnet3jumbo <-> vmxnet3jumbo
    5.3Gbits/sec, load: 40-60%Sys 0.5-2%Intr

vmxnet3 <-> vmxnet3
    1.85 GBits/sec, load: 60-80%Sys 0-0.8%Intr


if_vmx <-> if_vmx
    1.51 GBits/sec, load: 10-45%Sys 40-48%Intr
                                                                !!!
if_vmxjumbo <-> if_vmxjumbo not possible


if_em(e1000) <-> if_em(e1000)
    1.23 GBits/sec, load: 80-60%Sys 0.5-8%Intr

if_em(e1000)jumbo <-> if_em(e1000)jumbo
    2.27Gbits/sec, load: 40-30%Sys 0.5-5%Intr


if_igb(e1000e)junmbo <-> if_igb(e1000e)jumbo
    5.03 Gbits/s, load: 70-60%Sys 0.5%Intr

if_igb(e1000e) <-> if_igb(e1000e)
    1.39 Gbits/s, load: 60-80%Sys 0.5%Intr


f_igb(e1000e) <-> if_igb(e1000e), both hw.em.[rt]xd=3D4096
    1.66 Gbits/s, load: 65-90%Sys 0.5%Intr

if_igb(e1000e)junmbo <-> if_igb(e1000e)jumbo, both hw.em.[rt]xd=3D4096
    4.81 Gbits/s, load: 65%Sys 0.5%Intr

Conclusion:
if_vmx performs well compared to the regular emulated nics and standard
MTU, but it's behind tuned e1000e nic emulation and can't reach vmxnet3
performance with regular mtu. If one needs throughput, the missing jumbo
frame support in if_vmx  is a show stopper.

e1000e is preferable over e1000, even if not officially choosable with
"FreeBSD"-selection as guest (edit .vmx and alter ethernet0.virtualDev =3D=

"e1000e", and dont forget to set hw.em.enable_msix=3D0 in loader.conf,
although the driver e1000e attaches is if_igb!)

Thanks,

-Harry


--------------enig68C5E2ACB8ED11F3249CE469
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (FreeBSD)

iEYEARECAAYFAlIU04UACgkQLDqVQ9VXb8hmmgCgqjslR9vbXAE44fjkm2eSIUqH
AhYAoMW6CZ3z3+5etkrA4RV9nJo2XoyO
=4WUd
-----END PGP SIGNATURE-----

--------------enig68C5E2ACB8ED11F3249CE469--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5214D37F.5000307>