On Mon, Nov 17, 2008 at 06:39:45PM -0800, Chris Wright wrote:
Below is a simple PoC for setting a large MTU size on a tap device.
With this we are able to improve net i/o throughput substantially (~40%
improvement on TX and ~130% improvement on RX). This is just RFC because
it's hardcoded to an MTU of 9000 for any tap device. Thoughts on the
best way to add this kind of support?
Well if we want it to be configurable per guest then we'd add it
to the XML, in the <target> device field, alongside the VIF
name, eg
<interface type='network'>
<source network='default'/>
<target dev='vnet7' mtu='9000'/>
<mac address="11:22:33:44:55:66"/>
</interface>
libvirt can handle this stuff directly for QEMU and LXC drivers
but for Xen, VIF setup is done by an /etc/xen/scripts/vif-bridge
script. AFAIK, XenD has no config param for MTU, but there's
no reason we can't write a patch for XenD to accept an MTU param
and pass that through to vif-bridge. If large MTUs are useful
for Xen's netback of course...
If we don't need this configurable, is there any downside to setting
a MTU of 9000 for all TAP devices we create. I assume that PTMUD
will ensure that the guest only sends packets <= 1500 if the physical
NIC connected to the bridge doesn't have such a large MTU, or if the
guest doesn't do PMTUD, then the bridge code will do fragementation
as needed ?
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|