Virtual machine networking performance can be improved by virtualising tcp offloading
functions often found in hardware network cards. Instead of the virtual machine doing all the
tcpy stuff then ethernetty stuff and passing the packet to the host machine which then has to
do some processing on it as well, the virtual machines asks its hardware accelerator functions
to take care of it... this can put it more quickly into the hosts actual hardware and save a
chunk of double processing.
I'm not sure about multiple hardware queues. The hardware, drivers, and virtual machine would
have to be designed for it, allowing each virtual machine direct access to a hardware queue,
with the hardware potentially having to do virtual memory mapping so the virtual machine can't
use it to grab data from the hosts memory, and then the hardware deciding how to schedule
packets from each machine over each other. Aside from all of this, giving a virtual machine
direct access to the real hardware somewhat defeats the purpose of it.