[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features no
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features not set when plugged into backend dynamically |
Date: |
Mon, 3 Mar 2014 14:48:33 +0200 |
On Mon, Mar 03, 2014 at 01:37:46PM +0100, Stefan Hajnoczi wrote:
> 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
IIUC mmio does not set any feature bits, so you get the fallback behaviour:
$ git grep DEFINE_VIRTIO_NET_FEATURES
hw/s390x/s390-virtio-bus.c: DEFINE_VIRTIO_NET_FEATURES(VirtIOS390Device,
host_featur
hw/s390x/virtio-ccw.c: DEFINE_VIRTIO_NET_FEATURES(VirtioCcwDevice,
host_features[0])
hw/virtio/virtio-pci.c: DEFINE_VIRTIO_NET_FEATURES(VirtIOPCIProxy,
host_features),
include/hw/virtio/virtio-net.h:#define DEFINE_VIRTIO_NET_FEATURES(_state,
_field) \
But it should work for pci, and certainly does for x86.
--
MST