On Tue, May 3, 2016 at 3:54 AM, Dean Jenkins <Dean_Jenkins@xxxxxxxxxx> wrote:Please tell us the x86_64 kernel version number that you used and which Linux Distribution it was ? This allows other people a chance to reproduce your observations.
On 03/05/16 11:04, Guodong Xu wrote:Just as a sample point, I have managed to reproduce exactly this issue
did you test on ARM 64-bit system or ARM 32-bit? I ask because HiKeyWe used 32-bit ARM and never tested on 64-bit ARM so I suggest that the
is an ARM 64-bit system. I suggest we should be careful on that. I saw
similar issues when transferring to a 64-bit system in other net
drivers.
commits need to be reviewed with 64-bit OS in mind.
Try testing on a Linux PC x86 32-bit OS which has has a kernel containing my
Do you have any suggestion on this regard?
ASIX commits. This will help to confirm whether the failure is related to
32-bit or 64-bit OS. Then try with Linux PC x86 64-bit OS, this should fail
otherwise it points to something specific in your ARM 64-bit platform.
on an x86_64 system by simply scp'ing a large file.
It is interesting that the reported "remaining" value is 988. Is 988 always shown ? I mean that do you see any other "remaining" values for the "Data Header synchronisation was lost" error message ?
[ 417.819276] asix 1-5:1.0 eth1: asix_rx_fixup() Data Header
synchronisation was lost, remaining 988
[ 417.823415] asix 1-5:1.0 eth1: asix_rx_fixup() Bad Header LengthThe gap in the timestamps shows 417.823415 - 417.819276 = 0.004139 = 4ms which is a large gap in terms of USB 2.0 high speed communications. This gap is expected to be in the 100us range for consecutive URBs. So 4ms is strange.
0xef830347, offset 4
[ 417.827502] asix 1-5:1.0 eth1: asix_rx_fixup() Bad Header LengthTimestamps show the gap to be 4ms which is strange for USB 2.0 high speed, are you sure high speed mode is being used ?
0x31e2b348, offset 4
[ 417.843779] asix 1-5:1.0 eth1: asix_rx_fixup() Data HeaderI agree the issue is not specific to your ARM 64 bit platform.
synchronisation was lost, remaining 988
[ 417.847921] asix 1-5:1.0 eth1: asix_rx_fixup() Bad Header Length
0x8af91035, offset 4
[ 417.852004] asix 1-5:1.0 eth1: asix_rx_fixup() Bad Header Length
0x8521fa03, offset 4
[ 418.273394] asix 1-5:1.0 eth1: asix_rx_fixup() Data Header
synchronisation was lost, remaining 988
[ 418.277532] asix 1-5:1.0 eth1: asix_rx_fixup() Bad Header Length
0x33cd9c7c, offset 4
[ 418.281683] asix 1-5:1.0 eth1: asix_rx_fixup() Bad Header Length
0x3d850896, offset 4
[ 418.286227] asix 1-5:1.0 eth1: asix_rx_fixup() Bad Header Length
0x86443357, offset 4
[ 418.290319] asix 1-5:1.0 eth1: asix_rx_fixup() Bad Header Length
0xee6c81d1, offset 4
I don't have any 32bit x86 installs around so I'm not sure I can easly
test there, but its clear its not arm64 specific.
thanks
-john