qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Jan Kiszka <jan.kiszka@siemens.de>,
	Luigi Rizzo <rizzo@iet.unipi.it>,
	Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: [Qemu-devel] [PATCH 0/3] net: add missing queue flush for e1000 and xen
Date: Thu,  9 Aug 2012 16:45:54 +0200	[thread overview]
Message-ID: <1344523557-28266-1-git-send-email-pbonzini@redhat.com> (raw)

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(-)

-- 
1.7.11.2

             reply	other threads:[~2012-08-09 14:46 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-09 14:45 Paolo Bonzini [this message]
2012-08-09 14:45 ` [Qemu-devel] [PATCH 1/3] net: notify iothread after flushing queue Paolo Bonzini
2012-08-09 17:55   ` Blue Swirl
2012-08-10  6:59     ` Stefan Hajnoczi
2012-08-09 14:45 ` [Qemu-devel] [PATCH 2/3] e1000: flush queue whenever can_receive can go from false to true Paolo Bonzini
2012-08-09 14:45 ` [Qemu-devel] [PATCH 3/3] xen: flush queue when getting an event Paolo Bonzini
2012-08-09 15:16 ` [Qemu-devel] [PATCH 0/3] net: add missing queue flush for e1000 and xen Stefan Hajnoczi
2012-08-09 15:18   ` Stefano Stabellini
2012-08-30  2:32 ` Amos Kong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1344523557-28266-1-git-send-email-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=jan.kiszka@siemens.de \
    --cc=qemu-devel@nongnu.org \
    --cc=rizzo@iet.unipi.it \
    --cc=stefanha@linux.vnet.ibm.com \
    --cc=stefano.stabellini@eu.citrix.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).