[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] Re: [3/11] [NET] front: Stop using rx->id



On Thu, Jul 27, 2006 at 02:28:48PM +0100, Keir Fraser wrote:
> 
> >Had we used the body of the second loop for the initial segment we 
> >would
> >end up wiping out the values of rx_skbs and grant_rx_ref when we do the
> >assignments
> >
> >             skb = np->rx_skbs[requeue_idx] = xennet_get_rx_skb(np, i);
> >             ref = np->grant_rx_ref[requeue_idx] = xennet_get_rx_ref(np, 
> >             i);
> >
> >because for the initial segment requeue_idx is always the same as i.
> 
> But wouldn't the xennet_get_* functions wipe the entries, only to be 
> immediately filled in again by the assignment to e.g., 
> np->rx_skbs[requeue_idx], so it would all work out okay (except a 
> needless wipe-then-rewrite)?

That was the reason of having two loops instead of the one.  In the first
loop, we're not moving entries so we don't assign rx_skbs/grant_rx_ref
at all.  In the second loop, we know that requeue_idx != i so we're
always moving entries forward in which case clearing the original position
is necessary.

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

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.