Comment 47 for bug 1175091

Revision history for this message
In , Bpoirier (bpoirier) wrote :

7b70176 atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring
 [PATCH] atl1c: use custom skb allocator

This is somewhat speculative.
Since "69b08f6 net: use bigger pages in __netdev_alloc_frag
(v3.7-rc1)" skbs allocated via netdev_alloc_skb() with len roughly < PAGE_SIZE
can have a head that crosses page boundaries. The theory is that the hardware
doesn't support this.

However, as pointed out by Eric Dumazet, the mtu can be more than 4k.
(MAX_JUMBO_FRAME_SIZE = 6122) Does it work then?

According to my math, an mtu >= 1643 will lead to rx_frag_size
>= 4096.

Thomas, out of curiosity, would you mind testing with an mtu between 1643 and
6122?

Something like:
ip link set mtu 5000 dev eth0 # on the remote host as well, important!
ping -s4900 -c1000 -f -M do $host
ip -s link show dev eth0

If that shows errors, can you test again with mtu = 1643, just to see if I got
my math right ;) You may do these tests with the stock 12.3 driver or the
updated kmp, I don't think it matters.

Thanks.