[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] RE: Question on sg in netback tx path
> -----Original Message----- > From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx > [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of > James Harper > Sent: Monday, March 03, 2008 9:03 PM > To: xen-devel@xxxxxxxxxxxxxxxxxxx > Subject: [Xen-devel] Question on sg in netback tx path > > I'm trying to improve performance on the gpl pv drivers for > windows, and am running into trouble with the sg stuff on the tx path. > > Taking an icmp packet as an example, windows formats the packet like > this: > sg entry 0 - Ethernet header > sg entry 1 - IP header > sg entry 2 - payload > > Those pieces could be anywhere inside the page. > > In netback.c, it appears that the sg magic happens inside > netbk_count_requests. The following statement confuses me: > > " > if (txp->size > first->size) { > DPRINTK("Frags galore\n"); > return -frags; > } > " > > If I interpret the implications of that correctly, the 'size' > field in the first fragment of a packet should be the size of > the entire packet, Correct. >but then how do I tell netback how long my > first fragment is? Look at the line following the code above: first->size -= txp->size; This line subtract each fragment size from the "size" field in the first fragment. When the loop ends you will have subtracted the size of all fragments and first->size will now have the actual size of the first fragment. Renato > > Thanks > > James > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@xxxxxxxxxxxxxxxxxxx > http://lists.xensource.com/xen-devel > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |