Hmm, I wasn't aware I was using vhost but apparently virt-manager or libvirt turns it on without giving an option. I just basically turned on anything in the kernel config that looked like it might be useful, i'm pretty new to virtualization.
Also vhost is just a speed enhancement for the virtio network device. It's entirely possible to have 10% lower latency but 8x throughput, but that's usually the kind of thing that happens from implementing zero-copy, not a better interrupt mechanism. I kinda doubt it too. On that note, I don't get why he compares it to e1000, apples and oranges, he should be comparing virtio with and without vhost.
At any rate, I don't think that caveat wrt DHCP is related to crashes, as it makes it through dhcp fine and nothing else is talking on that port. I will investigate though as anything that's involved with packet transmission may be an issue though.
Here is my conf.d/net on the host which allows communication between host and guest (note that BOTH eth0 and macvlan network devices must be turned on via rc-update, and note that macvlan0 becomes the network device for the host to use):
Code: Select all
config_eth0="null" #use macvlan instead
macvlan_macvlan0="eth0" #for libvirtd/qemu guests to be able to talk to host
mode_macvlan0="bridge" #
Guest uses blank conf.d/net.
How does this allow host/guest to communicate? Simple, macvtap (uses macvlan internally) only allows packets to go out to the physical hardware or get redirected to the proper recipient when coming in - there's no mechanism to redirect a packet going out to one coming in, at least when you're dealing with the host using the actual eth0 device. Once it's gone that far it has to go out the cat5. But, the limitation doesn't exist between macvlan's using the same underlying hardware - it can bounce packets between them before taking them to eth0. So the answer is have the host use macvlan, guests use macvtap devices (which see themselves as peers and act like a bridge), and it works. The caveat i've seen is that NetworkManager doesn't understand anything about this (on the host) but screw networkmanager anyway.