[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] How to enable vhost for virtIO NIC?



On 05/20/2010 10:30 AM, Ruben Kerkhof wrote:
Hi all,

On Wed, May 19, 2010 at 18:22, Laine Stump<laine laine org>  wrote:
On 05/19/2010 01:49 AM, Huang, Zhiteng wrote:
Hi gurus on the list,

I'm trying to bring up a Linux with virtio vhost backend.  My system is
running on kernel 2.6.34-rc7, libvirt 0.8.0.

Two questions regarding to vhost:

1) XML format for vhost
I didn't find any documents on libvirt.org description the XML or QMU
argument format for vhost.
If you're using virtio networking, and vhost-net support is available on
your system, libvirt will automatically alter the qemu commandline arguments
to take advantage of it. libvirt checks for two things:

1) it runs "qemu-kvm --help" and looks for ",vhost=" in the output
(demonstrating that this build of qemu supports vhost)

2) it attempts to open "/dev/vhost-net" in rw mode (demonstrating that the
kernel support is there, either built into the kernel or loaded as a
module).
I just tried this with libvirt 0.8.1, on a 2.6.34 kernel, and it
doesn't seem to work for me.
Setting a breakpoint on the qemudOpenVhostNet function shows that it
returns -1, because QEMUD_CMD_FLAG_NETDEV isn't set.

-netdev is disabled on qemu 0.12

Sigh. Yes, you are correct. I had forgotten that I had locally modify the libvirt source to force the use of the qemu -netdev commandline option (rather than -net). -netdev is required for vhost-net because qemu purposefully ignores vhost= in the -net options (I don't recall the reason behind this, but do remember that it somehow made sense when it was explained).

Also, I just noticed that F13 is still serving up libvirt 0.7.7, and the vhost-net patch went in just after that, so it would require at least libvirt 0.8.0.

If you don't care about network device hotplug, you can grab the latest sources and enable -netdev - just remove the "#if 0" around the block testing for presence of -netdev in qemudComputeCmdFlags, and appropriately modify the qemu version number it's looking for.

If you're not that adventurous, you'll have to play the waiting game. When support is enabled, though, you won't need to do anything with your config; just restart your guests.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]