From: Ian Campbell <ian.campbell@citrix.com>
To: jeremy@goop.org
Cc: Steven.Smith@eu.citrix.com, Keir Fraser <keir.fraser@citrix.com>,
xen-devel@lists.xensource.com,
Ian Campbell <ian.campbell@citrix.com>,
JBeulich@novell.com
Subject: [PATCH 1/4] xen: netback: Fixes for delayed copy of tx network packets.
Date: Fri, 11 Jun 2010 15:19:08 +0100 [thread overview]
Message-ID: <1276265951-24490-1-git-send-email-ian.campbell@citrix.com> (raw)
In-Reply-To: <1276265928.19091.3469.camel@zakaz.uk.xensource.com>
From: Keir Fraser <keir.fraser@citrix.com>
- Should call net_tx_action_dealloc() even when dealloc ring is
empty, as there may in any case be work to do on the
pending_inuse list.
- Should not exit directly from the middle of the tx_action tasklet,
as the tx_pending_timer should always be checked and updated at the
end of the tasklet.
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
[picked from linux-2.6.18-xen.hg 959:1a97bd686258, ported across a43e2175 "xen/netback: move code around"]
---
drivers/xen/netback/netback.c | 25 ++++++++++++-------------
1 files changed, 12 insertions(+), 13 deletions(-)
diff --git a/drivers/xen/netback/netback.c b/drivers/xen/netback/netback.c
index b23fab0..9e4793f 100644
--- a/drivers/xen/netback/netback.c
+++ b/drivers/xen/netback/netback.c
@@ -1384,16 +1384,6 @@ static void net_tx_submit(struct xen_netbk *netbk)
netif_rx_ni(skb);
netif->dev->last_rx = jiffies;
}
-
- if (netbk_copy_skb_mode == NETBK_DELAYED_COPY_SKB &&
- !list_empty(&netbk->pending_inuse_head)) {
- struct netbk_tx_pending_inuse *oldest;
-
- oldest = list_entry(netbk->pending_inuse_head.next,
- struct netbk_tx_pending_inuse, list);
- mod_timer(&netbk->netbk_tx_pending_timer,
- oldest->alloc_time + HZ);
- }
}
/* Called after netfront has transmitted */
@@ -1403,19 +1393,28 @@ static void net_tx_action(unsigned long data)
unsigned nr_mops;
int ret;
- if (netbk->dealloc_cons != netbk->dealloc_prod)
- net_tx_action_dealloc(netbk);
+ net_tx_action_dealloc(netbk);
nr_mops = net_tx_build_mops(netbk);
if (nr_mops == 0)
- return;
+ goto out;
ret = HYPERVISOR_grant_table_op(GNTTABOP_map_grant_ref,
netbk->tx_map_ops, nr_mops);
BUG_ON(ret);
net_tx_submit(netbk);
+out:
+ if (netbk_copy_skb_mode == NETBK_DELAYED_COPY_SKB &&
+ !list_empty(&netbk->pending_inuse_head)) {
+ struct netbk_tx_pending_inuse *oldest;
+
+ oldest = list_entry(netbk->pending_inuse_head.next,
+ struct netbk_tx_pending_inuse, list);
+ mod_timer(&netbk->netbk_tx_pending_timer,
+ oldest->alloc_time + HZ);
+ }
}
static void netif_idx_release(struct xen_netbk *netbk, u16 pending_idx)
--
1.5.6.5
next prev parent reply other threads:[~2010-06-11 14:19 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-11 14:18 [GIT 0/4] netback patches from XCP patch queue Ian Campbell
2010-06-11 14:19 ` Ian Campbell [this message]
2010-06-11 14:19 ` [PATCH 2/4] xen: netback: handle NET_SKBUFF_DATA_USES_OFFSET correctly Ian Campbell
2010-06-11 14:19 ` [PATCH 3/4] xen: netback: drop frag member from struct netbk_rx_meta Ian Campbell
2010-06-11 14:19 ` [PATCH 4/4] xen/netback: linearise SKBs as we copy them into guest memory on guest-RX Ian Campbell
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=1276265951-24490-1-git-send-email-ian.campbell@citrix.com \
--to=ian.campbell@citrix.com \
--cc=JBeulich@novell.com \
--cc=Steven.Smith@eu.citrix.com \
--cc=jeremy@goop.org \
--cc=keir.fraser@citrix.com \
--cc=xen-devel@lists.xensource.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).