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

Re: netback behaviour (mirage under xen)



> However if I put a "sleep 1" between writing the fragments then netback in
> dom0 will (from my PoV) prematurely transmit the packet with only the first
> fragment. The packet is the full requested size but there are zeroes where
> the second fragment should be. The second fragment is then transmitted
> afterwards and is obviously dropped pretty quickly because it has
> application data where the ethernet/IP/... headers should be.
> 
> The only thing I can see that we might be doing wrong is we're updating the
> shared request pointer per fragment rather than per packet. This will allow
> the backend to see the initial fragment by itself if it has time to look
> (hence the sleep 1 triggering the problem).
Yeah, don't do that, it doesn't work.  Netback assumes that you only
put whole packets on the ring before updating the indices, and will
get quite confused if you push in partial ones.  It's supposed to drop
the entire packet and return an error, rather than splitting it in
half, but that's not even slightly tested, so it really doesn't
surprise me that it's a bit broken.

> I suspect a workaround will probably be to update the request pointer per
> packet rather than per fragment.
That's the correct fix, yes.

Steven.



 


Rackspace

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