Hi, During the previous months, I've been porting OpenBSD's vmxnet driver (if_vic) to FreeBSD [1]. It has reach a doneness that I'd like to draw attention to it for those not subscribed to svn-projects.
Most of the original OpenBSD driver - the attach, init, and Tx/Rx paths - have been rewritten. I added support for vmxnet2 - IPv4 TSO and checksum offloading. Code for LRO was added too, but I cannot figure out how to get it enabled on the hypervisor. Unfortunately, the driver tends to be no faster than the emulated em device, which certainly is not the desired outcome for a paravirtualized device. Nothing in the code jumps out as an obvious performance killer. The original OpenBSD driver suffers from the same lower performance, so it was not introduced during the port. I casually suspect the vmxnet code in VMware has not gotten much attention since vmxnet3 was introduced. The performance issue is gating this from being merged into HEAD, but I don't have the spare cycles at the moment to really investigate this; and I need to spend time to get VirtIO in better shape. My ultimate goal is to have a BSD licensed vmxnet3 driver included in FreeBSD to remove the need to use the poor one that's apart of the VMware tools. There is work in progress to get the necessary documentation to make that happen, but there is no firm date yet (likely later this year, hopefully in time for 10.0). Any testing or performance data is welcome. For bulk TCP transfers, if_vic will tend to be faster than em (~1/2 a magnitude) due to TSO, but I don't think that warrants merging into HEAD yet. Bryan [1] - http://svnweb.freebsd.org/base/projects/vmxnet/sys/dev/vmware/vmxnet/ _______________________________________________ freebsd-net@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-net To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"