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