WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Xen

xen-devel

[Top] [All Lists]

[Xen-devel] [4/11] [NET] front: Move rx req pushing to one spot

To: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>, Xen Development Mailing List <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [4/11] [NET] front: Move rx req pushing to one spot
From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 8 Jul 2006 00:18:39 +1000
Delivery-date: 2006年7月07日 07:20:10 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <20060707141634.GA12031@xxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20060707141634.GA12031@xxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.9i
Hi:
[NET] front: Move rx req pushing to one spot
This patch moves all rx request pushing to network_alloc_rx_buffers.
This is needed to reduce churn for TSO. More importantly, this makes
it easier to send notifications when adding rx requests which is
required for having a queue in dom0.
Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Cheers,
-- 
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
diff -r 2ec3e15164f7 -r d398fb29e84a 
linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c
--- a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Fri Jul 07 
23:35:52 2006 +1000
+++ b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c Fri Jul 07 
23:36:12 2006 +1000
@@ -600,14 +600,17 @@ static void network_alloc_rx_buffers(str
 /* Could not allocate any skbuffs. Try again later. */
 mod_timer(&np->rx_refill_timer,
 jiffies + (HZ/10));
- return;
+ break;
 }
 __skb_queue_tail(&np->rx_batch, skb);
 }
 
 /* Is the batch large enough to be worthwhile? */
- if (i < (np->rx_target/2))
+ if (i < (np->rx_target/2)) {
+ if (req_prod > np->rx.sring->req_prod)
+ goto push;
 return;
+ }
 
 /* Adjust our fill target if we risked running out of buffers. */
 if (((req_prod - np->rx.sring->rsp_prod) < (np->rx_target / 4)) &&
@@ -678,6 +681,7 @@ static void network_alloc_rx_buffers(str
 
 /* Above is a suitable barrier to ensure backend will see requests. */
 np->rx.req_prod_pvt = req_prod + i;
+push:
 RING_PUSH_REQUESTS(&np->rx);
 }
 
@@ -875,7 +879,6 @@ static void xennet_move_rx_slot(struct n
 RING_GET_REQUEST(&np->rx, np->rx.req_prod_pvt)->id = new;
 RING_GET_REQUEST(&np->rx, np->rx.req_prod_pvt)->gref = ref;
 np->rx.req_prod_pvt++;
- RING_PUSH_REQUESTS(&np->rx);
 }
 
 static int netif_poll(struct net_device *dev, int *pbudget)
@@ -1213,7 +1216,6 @@ static void network_connect(struct net_d
 }
 
 np->rx.req_prod_pvt = requeue_idx;
- RING_PUSH_REQUESTS(&np->rx);
 
 /*
 * Step 3: All public and private state should now be sane. Get
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
Previous by Date: [Xen-devel] [3/11] [NET] front: Stop using rx->id , Herbert Xu
Next by Date: [Xen-devel] [5/11] [NET] back: Replace netif->active with netif_carrier_ok , Herbert Xu
Previous by Thread: [Xen-devel] Re: [3/11] [NET] front: Stop using rx->id , Herbert Xu
Next by Thread: [Xen-devel] [5/11] [NET] back: Replace netif->active with netif_carrier_ok , Herbert Xu
Indexes: [Date] [Thread] [Top] [All Lists]

Copyright ©, Citrix Systems Inc. All rights reserved. Legal and Privacy
Citrix This site is hosted by Citrix

AltStyle によって変換されたページ (->オリジナル) /