[CFT] VMware vmxnet3 ethernet driver

Bryan Venteicher bryanv at daemoninthecloset.org
Tue Aug 27 14:53:07 UTC 2013



----- Original Message -----
> Bezüglich Bryan Venteicher's Nachricht vom 27.08.2013 06:18 (localtime):
> 
> ...
> 
> >> It seems if_vmx doesn't support jumbo frames. If I set mtu 9000, I get
> >> »vmx0: cannot populate Rx queue 0«, I have no problems using jumbo
> >> frames with vmxnet3.
> >>
> > This could fail for two reasons - could not allocate an mbuf cluster,
> > or the call to bus_dmamap_load_mbuf_sg() failed. For the former, you
> > should check vmstat -z. For the later, the behavior of
> > bus_dmamap_load_mbuf_sg()
> > changed between 9.1 and 9.2, and I know it was broken for awhile. I don't
> > recall exactly when I fixed it (I think shortly after I made the original
> > announcement). Could you retry with the files from HEAD @ [1]? Also, there
> > are new sysctl oids (dev.vmx.X.mbuf_load_failed & dev.vmx.X.mgetcl_failed)
> > for these errors.
> >
> > I just compiled the driver on 9.2-RC2 with the sources from HEAD and was
> > able to change the MTU to 9000.
> >
> > [1]- http://svnweb.freebsd.org/base/head/sys/dev/vmware/vmxnet3/
> 
> Thanks a lot for your ongoing work!
> I can confirm that with recent if_vmx.c from head and compiled for
> 9.2-RC3, setting mtu to 9000 works as expected :-)
> 
> 
> >> 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".
> >>
> > I've got a few performance things to still look at. What's the sysctl
> > dev.vmx.X output for the if_vmx<->if_vmx tests?
> 
> Just repeated if_vmx simple iperf bench, results vary slightly from
> standard 10sec run to run, but still noticable high Intr usage:
>

The intr usage is higher than the other drivers you compared against
because if_vmx does the off-level processing in ithreads where as the
others do it in a taskqueue.

BTW: if_vmx can to LRO as well. I don't think the emulated e1000 can,
but I bet the e1000e does.

> if_vmx <-> if_vmx
>     1.32 GBits/sec, load: 10-45%Sys 40-48%Intr
> 
> if_vmxJumbo <-> if_vmxJumbo
>     5.01 GBits/sec, load: 10-45%Sys 40-48%Intr
> 
> Please find attached the different outputs of dev.vmx.X (the mtu9000 run was
> only 3.47GBits/sec in that case, took the numbers anyway)
> 
> wbr,
> 
> -Harry
> 
> 


More information about the freebsd-current mailing list