qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Hajnoczi <stefanha@redhat.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
	Fam Zheng <famz@redhat.com>,
	Stefan Hajnoczi <stefanha@redhat.com>
Subject: [Qemu-devel] [PULL 03/16] netmap: Drop netmap_can_send
Date: Fri, 12 Jun 2015 13:57:28 +0100	[thread overview]
Message-ID: <1434113861-26495-4-git-send-email-stefanha@redhat.com> (raw)
In-Reply-To: <1434113861-26495-1-git-send-email-stefanha@redhat.com>

From: Fam Zheng <famz@redhat.com>

This callback is called by main loop before polling s->fd, if it returns
false, the fd will not be polled in this iteration.

This is redundant with checks inside read callback. After this patch,
the data will be copied from s->fd to s->iov when it arrives. If the
device can't receive, it will be queued to incoming_queue, and when the
device status changes, this queue will be flushed.

Also remove the qemu_can_send_packet() check in netmap_send. If it's
true, we are good; if it's false, the qemu_sendv_packet_async would
return 0 and read poll will be disabled until netmap_send_completed is
called.

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-id: 1433400324-7358-5-git-send-email-famz@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 net/netmap.c | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/net/netmap.c b/net/netmap.c
index 69300eb..19d0542 100644
--- a/net/netmap.c
+++ b/net/netmap.c
@@ -132,23 +132,13 @@ error:
     return -1;
 }
 
-/* Tell the event-loop if the netmap backend can send packets
-   to the frontend. */
-static int netmap_can_send(void *opaque)
-{
-    NetmapState *s = opaque;
-
-    return qemu_can_send_packet(&s->nc);
-}
-
 static void netmap_send(void *opaque);
 static void netmap_writable(void *opaque);
 
 /* Set the event-loop handlers for the netmap backend. */
 static void netmap_update_fd_handler(NetmapState *s)
 {
-    qemu_set_fd_handler2(s->me.fd,
-                         s->read_poll  ? netmap_can_send : NULL,
+    qemu_set_fd_handler2(s->me.fd, NULL,
                          s->read_poll  ? netmap_send     : NULL,
                          s->write_poll ? netmap_writable : NULL,
                          s);
@@ -317,7 +307,7 @@ static void netmap_send(void *opaque)
 
     /* Keep sending while there are available packets into the netmap
        RX ring and the forwarding path towards the peer is open. */
-    while (!nm_ring_empty(ring) && qemu_can_send_packet(&s->nc)) {
+    while (!nm_ring_empty(ring)) {
         uint32_t i;
         uint32_t idx;
         bool morefrag;
-- 
2.4.2

  parent reply	other threads:[~2015-06-12 12:57 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-12 12:57 [Qemu-devel] [PULL 00/16] Net patches Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 01/16] stubs: Add qemu_set_fd_handler Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 02/16] l2tpv3: Drop l2tpv3_can_send Stefan Hajnoczi
2015-06-12 12:57 ` Stefan Hajnoczi [this message]
2015-06-12 12:57 ` [Qemu-devel] [PULL 04/16] net/socket: Drop net_socket_can_send Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 05/16] tap: Drop tap_can_send Stefan Hajnoczi
2015-07-09 22:42   ` Aurelien Jarno
2015-06-12 12:57 ` [Qemu-devel] [PULL 06/16] Change qemu_set_fd_handler2(..., NULL, ...) to qemu_set_fd_handler Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 07/16] main-loop: Drop qemu_set_fd_handler2 Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 08/16] alsaaudio: Remove unused error handling of qemu_set_fd_handler Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 09/16] oss: " Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 10/16] xen_backend: " Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 11/16] event-notifier: Always return 0 for posix implementation Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 12/16] iohandler: Change return type of qemu_set_fd_handler to "void" Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 13/16] rocker: Add support for phys name Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 14/16] rocker: update tests using hw-derived interface names Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 15/16] rocker: bring link up/down on PHY enable/disable Stefan Hajnoczi
2015-06-12 12:57 ` [Qemu-devel] [PULL 16/16] qmp/hmp: add rocker device support Stefan Hajnoczi
2015-06-20 21:13   ` Paolo Bonzini
2015-06-12 17:03 ` [Qemu-devel] [PULL 00/16] Net patches Peter Maydell

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=1434113861-26495-4-git-send-email-stefanha@redhat.com \
    --to=stefanha@redhat.com \
    --cc=famz@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /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).