All,
We're getting problems mounting nfs over token-ring (specifically
olympic).
In olympic we set the buffer size to match the mtu which defaults to 4096.
When we receive a packet if it fits all in one buffer the skbuff is just
swapped and transferred to the network layers.
The problem comes when the skbuff hits the socket layers, there is a test
in sock.h for skb->truesize >= sk->rcvbuf. rcvbuf is set to 2048 and
truesize is coming in much larger and therefore the test is failing and
the packet not getting put on the sk->receive_queue.
So, the question is where should the fix for this go ? I can alter olympic
to memcpy the packet into a skbuff that is allocated to the length of th
packet (which we already do if the packet spans multiple buffers) but then
we lose the efficiency from just swapping the buffers or should sock.h
test against skb->len rather than skb->truesize or is there a third option
?
Mike
Linux Token Ring Project
http://www.linuxtr.net
|