[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 0/3] net: add missing queue flush for e1000 and
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 0/3] net: add missing queue flush for e1000 and xen |
Date: |
Thu, 9 Aug 2012 16:16:29 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Aug 09, 2012 at 04:45:54PM +0200, Paolo Bonzini wrote:
> Luigi reminded me of these patches...
>
> When the guests replenish the receive ring buffer, the network device
> should flush its queue of pending packets. This is done with
> qemu_flush_queued_packets, and patches 2+3 add the missing call to
> two drivers, e1000 and xen. More may come later---no time to test
> them now.
>
> However, the device should not just retry delivery of packets that were
> already read from the tap device, it should also try to read more packets
> from the tap device. The latter requires a qemu_notify_event to force
> recomputation of the fd_sets. virtio already does this, but it is a
> layering violation; patch 1 moves the call from virtio to the network
> subsystem, so that e1000 and xen will then get it for free.
>
> Paolo Bonzini (3):
> net: notify iothread after flushing queue
> e1000: flush queue whenever can_receive can go from false to true
> xen: flush queue when getting an event
>
> hw/e1000.c | 4 ++++
> hw/virtio-net.c | 4 ----
> hw/xen_nic.c | 1 +
> net.c | 7 ++++++-
> net/queue.c | 5 +++--
> net/queue.h | 2 +-
> 6 file modificati, 15 inserzioni(+), 8 rimozioni(-)
Looks good for QEMU 1.2. I'll give Jan and Stefano time to respond, if
they want.
Stefan