[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/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).

You can verify libvirt has enabled vhost by looking at the generated commandline in /var/log/libvirt/qemu/<domain>.log for "vhost=on,vhostfd=<some number>"


According to http://www.linux-kvm.org/page/VhostNet#vhost-net_driver_projects, I tried *domxml-from-native* to convert following qemu argument to XML

qemu-system-x86_64 -m 1G disk-c.qcow2 \
-net nic,model=virtio,netdev=foo \
-netdev tap,id=foo,ifname=msttap0,script=/home/mst/ifup,downscript=no,vhost=on

But the output clearly ignore the network.
<domain type='qemu'>
   <name>unnamed</name>
   <uuid>9cc877c1-7ac2-463d-3d3f-fa8f8918fe23</uuid>
   <memory>1048576</memory>
   <currentMemory>1048576</currentMemory>
   <vcpu>1</vcpu>
   <os>
     <type arch='x86_64'>hvm</type>
   </os>
   <features>
     <acpi/>
   </features>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>restart</on_reboot>
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>qemu-system-x86_64</emulator>
     <input type='mouse' bus='ps2'/>
     <graphics type='sdl'/>
     <video>
       <model type='cirrus' vram='9216' heads='1'/>
     </video>
   </devices>
</domain>

What's the problem here?

I haven't used domxml-from-native, so I can't help you there.

2) Virtio driver.
It's said that vhost require guest kernel version>  2.6.31 because vhost requires MSI-X.  How about frontend of virtio driver?  Say I'm running a Windows 2008 (with MSI-X support) + virtio NIC, is it necessary to upgrade frontend driver too?


a vhost virtio NIC appears to the guest driver identically to a user-space virtio NIC, so the same guest-side driver should work fine. (Actually, the vhost NIC doesn't (yet) support shared buffers that the user-space NIC does, but the guest's driver can deal with that)


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