Asadullah Hussain
2014-Jul-24 08:47 UTC
Re: [libvirt-users] vhost-net requested but could not be initialized
The qemu that I am using isn't modified at all. It's the VHOST drivers that are mounted elsewhere i.e., not on default /dev/vhost-net. Here is the command that I use to launch my qemu VM: qemu-system-x86_64 -cpu host -boot order=c -hda /root/Disks/ubuntu1.qcow2 -m 1024M -smp 2 --enable-kvm -name 'client 1' -nographic -vnc :2 -net none -no-reboot -mem-path /dev/hugepages -mem-prealloc -netdev type=tap,id=net1,script=no,downscript=no,ifname=port3,vhost=on -device virtio-net-pci,netdev=net1,mac=00:00:00:00:00:01,csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off -netdev type=tap,id=net2,script=no,downscript=no,ifname=port4,vhost=on -device virtio-net-pci,netdev=net2,mac=00:00:00:00:00:02,csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off As you can see I have created tap interfaces port3 & port4 and I just want to connect the VM to these VMs. On 24 July 2014 13:31, Daniel P. Berrange <berrange@redhat.com> wrote:> On Thu, Jul 24, 2014 at 08:42:47AM +0500, Asadullah Hussain wrote: > > Thanks Wangkai but libvirt infact pre-configures network tap devices and > > pre-opens /dev/vhost-net file and passes these to qemu as open, ready to > > use file descriptors. > > > > My issue is that my qemu requires that /dev/vhost-net directory is > removed > > and it's kernel module be unloaded. Then it creates a vhost -net device > > using its own configuration. > > Libvirt is only written to work against official upstream QEMU. If you > have modified your QEMU to work in a different way wrt net devices then > you'll have to modify your libvirt to cope or workaround the problems. > > Regards, > Daniel > -- > |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ > :| > |: http://libvirt.org -o- http://virt-manager.org > :| > |: http://autobuild.org -o- http://search.cpan.org/~danberr/ > :| > |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc > :| >-- Cheers, Asadullah Hussain
Asadullah Hussain
2014-Jul-24 10:48 UTC
Re: [libvirt-users] vhost-net requested but could not be initialized
Let me clarify my question, I am using unmodified stock qemu (1.4.0) and only the location of vhost file descriptor is different from default (I don't remove the default /dev/vhost-net directory) The VHOST file descriptor is present in "/dev/vhost-0" directory instead of the default "/dev/vhost-net". When I try to give vhostfd in the XML I get a different error: 2014-07-24 10:42:22.507+0000: 3181: error : qemuMonitorOpenUnix:293 : failed to connect to monitor socket: No such process 2014-07-24 10:42:22.507+0000: 3181: error : qemuProcessWaitForMonitor:1806 : internal error process exited while connecting to monitor: qemu-system-x86_64: -netdev type=tap,id=net1,script=no,downscript=no,ifname=port4,vhost=on,vhostfd=/dev/vhost-0: Device 'tap' could not be initialized Whereas if I don't give the vhostfd option in the XML, it uses the default /dev/vhost-net directory and throws the following error: 2014-07-24 10:41:35.970+0000: 3183: error : qemuMonitorOpenUnix:293 : failed to connect to monitor socket: No such process 2014-07-24 10:41:35.970+0000: 3183: error : qemuProcessWaitForMonitor:1806 : internal error process exited while connecting to monitor: qemu-system-x86_64: -netdev type=tap,id=net1,script=no,downscript=no,ifname=port4,vhost=on: vhost-net requested but could not be initialized qemu-system-x86_64: -netdev type=tap,id=net1,script=no,downscript=no,ifname=port4,vhost=on: Device 'tap' could not be initialized On 24 July 2014 13:47, Asadullah Hussain <asadxflow@gmail.com> wrote:> The qemu that I am using isn't modified at all. It's the VHOST drivers > that are mounted elsewhere i.e., not on default /dev/vhost-net. > > Here is the command that I use to launch my qemu VM: > qemu-system-x86_64 -cpu host -boot order=c -hda /root/Disks/ubuntu1.qcow2 > -m 1024M -smp 2 --enable-kvm -name 'client 1' -nographic -vnc :2 -net none > -no-reboot -mem-path /dev/hugepages -mem-prealloc -netdev > type=tap,id=net1,script=no,downscript=no,ifname=port3,vhost=on -device > virtio-net-pci,netdev=net1,mac=00:00:00:00:00:01,csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off > -netdev type=tap,id=net2,script=no,downscript=no,ifname=port4,vhost=on > -device > virtio-net-pci,netdev=net2,mac=00:00:00:00:00:02,csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off > > As you can see I have created tap interfaces port3 & port4 and I just want > to connect the VM to these VMs. > > > On 24 July 2014 13:31, Daniel P. Berrange <berrange@redhat.com> wrote: > >> On Thu, Jul 24, 2014 at 08:42:47AM +0500, Asadullah Hussain wrote: >> > Thanks Wangkai but libvirt infact pre-configures network tap devices and >> > pre-opens /dev/vhost-net file and passes these to qemu as open, ready to >> > use file descriptors. >> > >> > My issue is that my qemu requires that /dev/vhost-net directory is >> removed >> > and it's kernel module be unloaded. Then it creates a vhost -net device >> > using its own configuration. >> >> Libvirt is only written to work against official upstream QEMU. If you >> have modified your QEMU to work in a different way wrt net devices then >> you'll have to modify your libvirt to cope or workaround the problems. >> >> Regards, >> Daniel >> -- >> |: http://berrange.com -o- >> http://www.flickr.com/photos/dberrange/ :| >> |: http://libvirt.org -o- >> http://virt-manager.org :| >> |: http://autobuild.org -o- >> http://search.cpan.org/~danberr/ :| >> |: http://entangle-photo.org -o- >> http://live.gnome.org/gtk-vnc :| >> > > > > -- > Cheers, > > Asadullah Hussain >-- Cheers, Asadullah Hussain
Daniel P. Berrange
2014-Jul-24 10:52 UTC
Re: [libvirt-users] vhost-net requested but could not be initialized
On Thu, Jul 24, 2014 at 03:48:06PM +0500, Asadullah Hussain wrote:> Let me clarify my question, I am using unmodified stock qemu (1.4.0) and > only the location of vhost file descriptor is different from default (I > don't remove the default /dev/vhost-net directory) > > The VHOST file descriptor is present in "/dev/vhost-0" directory instead of > the default "/dev/vhost-net". When I try to give vhostfd in the XML I get a > different error:Well I suggest you make your system use the expected device name for /dev/vhost-net. Just as libvirt only targets mainline QEMU, we only target mainline kernel / standard device layout Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|