virtio-net acceleration features not set when plugged into backend dynamically When using indpendent transport and backend in this case virtio-net-device transport, none of the acceleration features are set after guest probes the transport the backend is plugged into. For virtio-net this leads to low throughput/performance. This holds true for virtio-mmio, PCI transports and most likely for others as well (CCW, S390) and other backends Command to run: ./qemu-system-arm -enable-kvm -smp 2 -kernel zImage -dtb ./guest-a15.dtb -m 512 -M vexpress-a15 -cpu cortex-a15 -nographic \ -append "root=/dev/vda rw console=ttyAMA0 rootwait" -drive if=none,file=/mnt/gauss.root,id=vm1 \ -device virtio-blk-device,drive=vm1 -netdev type=tap,id=net0,ifname=tap0 \ -device virtio-net-device,netdev=net0,mac="52:54:00:12:34:58" For x86 same virtio command for network. On Fri, Feb 28, 2014 at 05:40:19PM -0000, Mario Smarduch wrote: > When using indpendent transport and backend in this case virtio-net- > device transport, none of the acceleration features are set after guest > probes the transport the backend is plugged into. For virtio-net this > leads to low throughput/performance. This holds true for virtio-mmio, > PCI transports and most likely for others as well (CCW, S390) and other > backends > > Command to run: > ./qemu-system-arm -enable-kvm -smp 2 -kernel zImage -dtb ./guest-a15.dtb -m 512 -M vexpress-a15 -cpu cortex-a15 -nographic \ > -append "root=/dev/vda rw console=ttyAMA0 rootwait" -drive if=none,file=/mnt/gauss.root,id=vm1 \ > -device virtio-blk-device,drive=vm1 -netdev type=tap,id=net0,ifname=tap0 \ > -device virtio-net-device,netdev=net0,mac="52:54:00:12:34:58" > > For x86 same virtio command for network. Can you explain in more detail? The command-line looks sane. The virtio-net-device instance should figure out the tap supports offloads. Did you try adding a printf to virtio_net_get_features() to see why the offload features are not being detected? Stefan I don't have an x86 setup handy, but looking through the code 'virtio-net-pci' will work but not 'virtio-net-device'. My understanding was the goal is for any backend to plug into any transport on any platform. I'll try an x86 test with 'virtio-net-device' option and see what happens. Yes I did check the options on host after device is plugged and guest after features are probed, only the MAC feature is set. Thanks, - Mario -----Original Message----- From: