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

Re: [Xen-devel] PATCH: multicall and auto_translated in netfront.c



Le Vendredi 18 Août 2006 19:30, Steven Smith a écrit :
> > diff -r bef360142b62 -r ee4aef404bce
> > linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c ---
> > a/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c      Mon Aug 14
> > 14:21:21 2006 -0600 +++
> > b/linux-2.6-xen-sparse/drivers/xen/netfront/netfront.c      Fri Aug 18
> > 14:00:37 2006 +0200 @@ -1220,13 +1220,20 @@ err:
> >
> >     /* Do all the remapping work, and M2P updates, in one big hypercall. */
> >     if (likely(pages_done)) {
> > -           mcl = np->rx_mcl + pages_done;
> > +           unsigned int mcl_off;
> > +
> > +           if (!xen_feature(XENFEAT_auto_translated_physmap))
> > +                   mcl_off = pages_done;
> > +           else
> > +                   mcl_off = 0;
> > +
>
> The intent of this code was that pages_done should be 0 if
> auto_translated_physmap was set, so this should be a no-op.  It gets
> initialised to 0 at the top of the big loop, and is then only modified
> by xennet_get_responses through its mcl_offset_p pointer.
> xennet_get_responses only modifies it if
> !xen_feature(XENFEAT_auto_translated_physmap).  Am I simply confused?
I didn't look deeply into the code.  I have just viewed the result.
pages_done is incremented by skb_queue_length.  At first glance it does not 
depend on auto_translated.

> (And, in fact, if pages_done != 0 then the mmu update you do next will
> be incorrect)
On ia64 mmu_update is no-op ;-)

Tristan.

_______________________________________________
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®.