|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] RE: GPLPV: Respecting SG capability
> Another piece of future work will be to have
> the net driver disable sg if the backend doesn't have "feature-sg" set
to 1 in
> xenstore.
I've just pushed a fix for that - config-sg should now be disabled of
feature-sg is 0 in the backend. Let me know how it goes (nothing
actually uses config-sg yet though).
Contrary to my ramblings in the previous email, it may just be best to
allocate a bunch of MTU sized buffers and coalesce to those instead, as
you have done.
So the patch will need to check for !config_sg and:
. Make sure that TSO can only be a maximum of PAGE_SIZE (assuming sun
supports TSO at all under Xen?)
. Don't allocate the header buffers
. Allocate packet buffers - NET_TX_RING_SIZE (256 I think) should be
enough
. Don't make the call to NdisMInitializeScatterGatherDma at all
. Don't get ScatterGatherListPacketInfo at all (it won't exist due to
the absence of the above call)
. Most of the rest of what you did, except not to hbs but to the new
buffers
The reason for not calling NdisMInitializeScatterGatherDma when
!config_sg is that it's expensive if we aren't going to use it.
Does that sound like something you can put together?
Also remember that NdisMAllocateSharedMemory calls my DMA_ADAPTER code
in xenpci_pdo which constructs a bus-centric ('logical') address of
((GREF << PAGE_SHIFT) | page_offset), eg the grant table ref is encoded
into the logical address, and the lower PAGE_SHIFT (12) bits remain the
same as the virtual address. This is why the xennet driver doesn't have
to bother allocating grant references - the bus driver does it all for
it.
James
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|