|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH] Remove the 500ms timeout to restart the netif queue.
It is generally unhelpful as it results in a massive tail-drop should a guest
become
unresponsive for a relatively short period of time and no back-pressure (other
than
that caused by a higher layer protocol) is applied to the sender.
Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
drivers/xen/netback/netback.c | 20 +-------------------
1 files changed, 1 insertions(+), 19 deletions(-)
diff --git a/drivers/xen/netback/netback.c b/drivers/xen/netback/netback.c
index 066d140..87a2cd4 100644
--- a/drivers/xen/netback/netback.c
+++ b/drivers/xen/netback/netback.c
@@ -271,13 +271,6 @@ static inline int netbk_queue_full(struct xen_netif *netif)
((netif->rx.rsp_prod_pvt + NET_RX_RING_SIZE - peek) < needed);
}
-static void tx_queue_callback(unsigned long data)
-{
- struct xen_netif *netif = (struct xen_netif *)data;
- if (netif_schedulable(netif))
- netif_wake_queue(netif->dev);
-}
-
/* Figure out how many ring slots we're going to need to send @skb to
the guest. */
static unsigned count_skb_slots(struct sk_buff *skb, struct xen_netif *netif)
@@ -360,19 +353,8 @@ int netif_be_start_xmit(struct sk_buff *skb, struct
net_device *dev)
netif->rx.sring->req_event = netif->rx_req_cons_peek +
netbk_max_required_rx_slots(netif);
mb(); /* request notification /then/ check & stop the queue */
- if (netbk_queue_full(netif)) {
+ if (netbk_queue_full(netif))
netif_stop_queue(dev);
- /*
- * Schedule 500ms timeout to restart the queue, thus
- * ensuring that an inactive queue will be drained.
- * Packets will be immediately be dropped until more
- * receive buffers become available (see
- * netbk_queue_full() check above).
- */
- netif->tx_queue_timeout.data = (unsigned long)netif;
- netif->tx_queue_timeout.function = tx_queue_callback;
- mod_timer(&netif->tx_queue_timeout, jiffies + HZ/2);
- }
}
skb_queue_tail(&netbk->rx_queue, skb);
--
1.5.6.5
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|