qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features not set when plugged into backend dynamically
@ 2014-02-28 17:40 Mario Smarduch
  2014-03-03 12:37 ` Stefan Hajnoczi
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Mario Smarduch @ 2014-02-28 17:40 UTC (permalink / raw)
  To: qemu-devel

Public bug reported:

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.

** Affects: qemu
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1286253

Title:
  virtio-net acceleration features not set when plugged into backend
  dynamically

Status in QEMU:
  New

Bug description:
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1286253/+subscriptions

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features not set when plugged into backend dynamically
  2014-02-28 17:40 [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features not set when plugged into backend dynamically Mario Smarduch
@ 2014-03-03 12:37 ` Stefan Hajnoczi
  2014-03-03 12:48   ` Michael S. Tsirkin
  2017-05-16 10:12 ` [Qemu-devel] [Bug 1286253] " Thomas Huth
  2017-07-16  4:17 ` Launchpad Bug Tracker
  2 siblings, 1 reply; 6+ messages in thread
From: Stefan Hajnoczi @ 2014-03-03 12:37 UTC (permalink / raw)
  To: Bug 1286253; +Cc: qemu-devel, Michael S. Tsirkin

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features not set when plugged into backend dynamically
  2014-03-03 12:37 ` Stefan Hajnoczi
@ 2014-03-03 12:48   ` Michael S. Tsirkin
  2014-03-03 20:12     ` Mario Smarduch
  0 siblings, 1 reply; 6+ messages in thread
From: Michael S. Tsirkin @ 2014-03-03 12:48 UTC (permalink / raw)
  To: Stefan Hajnoczi; +Cc: Bug 1286253, qemu-devel

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features not set when plugged into backend dynamically
  2014-03-03 12:48   ` Michael S. Tsirkin
@ 2014-03-03 20:12     ` Mario Smarduch
  0 siblings, 0 replies; 6+ messages in thread
From: Mario Smarduch @ 2014-03-03 20:12 UTC (permalink / raw)
  To: Michael S. Tsirkin, Stefan Hajnoczi
  Cc: Peter Maydell <peter.maydell@linaro.org> (peter.maydell@linaro.org),
	Bug 1286253, qemu-devel@nongnu.org

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: qemu-devel-bounces+m.smarduch=samsung.com@nongnu.org [mailto:qemu-devel-bounces+m.smarduch=samsung.com@nongnu.org] On Behalf Of Michael S. Tsirkin
Sent: Monday, March 03, 2014 4:49 AM
To: Stefan Hajnoczi
Cc: Bug 1286253; qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features not set when plugged into backend dynamically

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] [Bug 1286253] Re: virtio-net acceleration features not set when plugged into backend dynamically
  2014-02-28 17:40 [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features not set when plugged into backend dynamically Mario Smarduch
  2014-03-03 12:37 ` Stefan Hajnoczi
@ 2017-05-16 10:12 ` Thomas Huth
  2017-07-16  4:17 ` Launchpad Bug Tracker
  2 siblings, 0 replies; 6+ messages in thread
From: Thomas Huth @ 2017-05-16 10:12 UTC (permalink / raw)
  To: qemu-devel

Which version of QEMU did you use here? Can you still reproduce this
problem with the latest version of QEMU (currently v2.9)?

** Changed in: qemu
       Status: New => Incomplete

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1286253

Title:
  virtio-net acceleration features not set when plugged into backend
  dynamically

Status in QEMU:
  Incomplete

Bug description:
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1286253/+subscriptions

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] [Bug 1286253] Re: virtio-net acceleration features not set when plugged into backend dynamically
  2014-02-28 17:40 [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features not set when plugged into backend dynamically Mario Smarduch
  2014-03-03 12:37 ` Stefan Hajnoczi
  2017-05-16 10:12 ` [Qemu-devel] [Bug 1286253] " Thomas Huth
@ 2017-07-16  4:17 ` Launchpad Bug Tracker
  2 siblings, 0 replies; 6+ messages in thread
From: Launchpad Bug Tracker @ 2017-07-16  4:17 UTC (permalink / raw)
  To: qemu-devel

[Expired for QEMU because there has been no activity for 60 days.]

** Changed in: qemu
       Status: Incomplete => Expired

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1286253

Title:
  virtio-net acceleration features not set when plugged into backend
  dynamically

Status in QEMU:
  Expired

Bug description:
  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.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1286253/+subscriptions

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-07-16  4:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-28 17:40 [Qemu-devel] [Bug 1286253] [NEW] virtio-net acceleration features not set when plugged into backend dynamically Mario Smarduch
2014-03-03 12:37 ` Stefan Hajnoczi
2014-03-03 12:48   ` Michael S. Tsirkin
2014-03-03 20:12     ` Mario Smarduch
2017-05-16 10:12 ` [Qemu-devel] [Bug 1286253] " Thomas Huth
2017-07-16  4:17 ` Launchpad Bug Tracker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).