After some discussion in upstream maillist, looks the problem is caused
by below commit:
commit a9e0aca4b37885b5599e52211f098bd7f565e749
Author: Eric Dumazet <email address hidden>
Date: Wed Mar 14 20:18:32 2012 +0000
asix: asix_rx_fixup surgery to reduce skb truesizes
asix_rx_fixup() is complex, and does some unnecessary memory copies (at
least on x86 where NET_IP_ALIGN is 0)
Also, it tends to provide skbs with a big truesize (4096+256 with
MTU=1500) to upper stack, so incoming trafic consume a lot of memory and
I noticed early packet drops because we hit socket rcvbuf too fast.
Switch to a different strategy, using copybreak so that we provide nice
skbs to upper stack (including the NET_SKB_PAD to avoid future head
reallocations in some paths)
With this patch, I no longer see packets drops or tcp collapses on
various tcp workload with a AX88772 adapter.
so I built kernel image with the patch, anyone can have a test?
After some discussion in upstream maillist, looks the problem is caused
by below commit:
commit a9e0aca4b37885b 5599e52211f098b d7f565e749
Author: Eric Dumazet <email address hidden>
Date: Wed Mar 14 20:18:32 2012 +0000
asix: asix_rx_fixup surgery to reduce skb truesizes
asix_rx_fixup() is complex, and does some unnecessary memory copies (at
least on x86 where NET_IP_ALIGN is 0)
Also, it tends to provide skbs with a big truesize (4096+256 with
MTU=1500) to upper stack, so incoming trafic consume a lot of memory and
I noticed early packet drops because we hit socket rcvbuf too fast.
Switch to a different strategy, using copybreak so that we provide nice
skbs to upper stack (including the NET_SKB_PAD to avoid future head
reallocations in some paths)
With this patch, I no longer see packets drops or tcp collapses on
various tcp workload with a AX88772 adapter.
so I built kernel image with the patch, anyone can have a test?
http:// kernel. ubuntu. com/~ming/ bugs/947723/ i386/2/
thanks