FEC performance degradation on iMX28 with forced link media
Subsystems (2)
Hello,
When forcing the Ethernet PHY link media with ethtool/mii-tool on the i.MX28 I've seen important performance degradation as the packet size increases.
On the target:
# mii-tool eth0 -F 10baseT-FD # netpipe
On the host:
# netpipe -h <target-ip> -n 1 ... 44: 1024 bytes 1 times --> 6.56 Mbps in 1191.00 usec 45: 1027 bytes 1 times --> 6.56 Mbps in 1193.52 usec 46: 1533 bytes 1 times --> 0.60 Mbps in 19600.54 usec 47: 1536 bytes 1 times --> 0.46 Mbps in 25262.52 usec 48: 1539 bytes 1 times --> 0.57 Mbps in 20745.54 usec 49: 2045 bytes 1 times --> 0.74 Mbps in 20971.95 usec ... On loop 46, as the packet size exceeds the MTU (1500) performance falls from 6.56Mbps to 0.60Mbps.
Going back to 100baseTX-FD, but still forced (autonegotiation off), the same occurs:
On the target:
# mii-tool eth0 -F 100baseTx-FD # netpipe
On the host:
# netpipe -h <target-ip> -n 1 ... 58: 6141 bytes 1 times --> 39.74 Mbps in 1179.03 usec 59: 6144 bytes 1 times --> 41.83 Mbps in 1120.51 usec 60: 6147 bytes 1 times --> 41.39 Mbps in 1133.03 usec 61: 8189 bytes 1 times --> 6.36 Mbps in 9823.94 usec 62: 8192 bytes 1 times --> 6.56 Mbps in 9521.46 usec 63: 8195 bytes 1 times --> 6.56 Mbps in 9532.99 usec ... only this time it happens with a larger packet size (8189 bytes).
With autonegotiation on, performance is ok and does not suffer these drops.
I've reproduced this on the mx28evk board but it also happens in my hardware, with different PHY on v3.10.
I also tried on an old v2.6.35 kernel and the issue was reproducible as well, though it happened with larger packet sizes than it happens with v3.10:
...
75: 32771 bytes 1 times --> 49.64 Mbps in 5036.50 usec 76: 49149 bytes 1 times --> 46.18 Mbps in 8120.48 usec 77: 49152 bytes 1 times --> 43.30 Mbps in 8660.46 usec 78: 49155 bytes 1 times --> 40.10 Mbps in 9351.46 usec 79: 65533 bytes 1 times --> 2.03 Mbps in 246061.04 usec 80: 65536 bytes 1 times --> 2.21 Mbps in 226516.50 usec 81: 65539 bytes 1 times --> 1.45 Mbps in 344196.46 usec
...
Could there be any issue with packet fragmentation?
I tried the same on imx6sabresd but here the issue is not reproducible. I don't know if the higher CPU frequency might be hiding the problem, though.
Any idea about what can make the difference between forcing media vs autonegotiation?
Best regards,
--
Hector Palacios
Hi Hector,
Quoted 57 lines
Hello,
When forcing the Ethernet PHY link media with ethtool/mii-tool on the i.MX28 I've seen important performance degradation as the packet size increases.
On the target:
# mii-tool eth0 -F 10baseT-FD # netpipeOn the host:
# netpipe -h <target-ip> -n 1 ... 44: 1024 bytes 1 times --> 6.56 Mbps in 1191.00 usec 45: 1027 bytes 1 times --> 6.56 Mbps in 1193.52 usec 46: 1533 bytes 1 times --> 0.60 Mbps in 19600.54 usec 47: 1536 bytes 1 times --> 0.46 Mbps in 25262.52 usec 48: 1539 bytes 1 times --> 0.57 Mbps in 20745.54 usec 49: 2045 bytes 1 times --> 0.74 Mbps in 20971.95 usec ... On loop 46, as the packet size exceeds the MTU (1500) performance falls from 6.56Mbps to 0.60Mbps.Going back to 100baseTX-FD, but still forced (autonegotiation off), the same occurs: On the target:
# mii-tool eth0 -F 100baseTx-FD # netpipeOn the host:
# netpipe -h <target-ip> -n 1 ... 58: 6141 bytes 1 times --> 39.74 Mbps in 1179.03 usec 59: 6144 bytes 1 times --> 41.83 Mbps in 1120.51 usec 60: 6147 bytes 1 times --> 41.39 Mbps in 1133.03 usec 61: 8189 bytes 1 times --> 6.36 Mbps in 9823.94 usec 62: 8192 bytes 1 times --> 6.56 Mbps in 9521.46 usec 63: 8195 bytes 1 times --> 6.56 Mbps in 9532.99 usec ... only this time it happens with a larger packet size (8189 bytes).With autonegotiation on, performance is ok and does not suffer these drops.
I've reproduced this on the mx28evk board but it also happens in my hardware, with different PHY on v3.10.
I also tried on an old v2.6.35 kernel and the issue was reproducible as well, though it happened with larger packet sizes than it happens with v3.10:
...75: 32771 bytes 1 times --> 49.64 Mbps in 5036.50 usec 76: 49149 bytes 1 times --> 46.18 Mbps in 8120.48 usec 77: 49152 bytes 1 times --> 43.30 Mbps in 8660.46 usec 78: 49155 bytes 1 times --> 40.10 Mbps in 9351.46 usec 79: 65533 bytes 1 times --> 2.03 Mbps in 246061.04 usec 80: 65536 bytes 1 times --> 2.21 Mbps in 226516.50 usec 81: 65539 bytes 1 times --> 1.45 Mbps in 344196.46 usec...
Quoted 7 lines
Could there be any issue with packet fragmentation?
I tried the same on imx6sabresd but here the issue is not reproducible. I don't know if the higher CPU frequency might be hiding the problem, though.Any idea about what can make the difference between forcing media vs autonegotiation?
Let me ask, this might be unrelated, but I will still go ahead. Do you also observe packetloss? You can check with iperf:
On host machine (PC): iperf -u -s -l 4M -i 60 On target: iperf -u -c <hostip> -t 3600 -B 100M -i 60
Best regards,
Marek Vasut
Quoted 64 lines · Marek Vasut
Hi Hector,
Quoted 62 lines
Hello,
When forcing the Ethernet PHY link media with ethtool/mii-tool on the i.MX28 I've seen important performance degradation as the packet size increases.
On the target:
# mii-tool eth0 -F 10baseT-FD # netpipeOn the host:
# netpipe -h <target-ip> -n 1 ... 44: 1024 bytes 1 times --> 6.56 Mbps in 1191.00 usec 45: 1027 bytes 1 times --> 6.56 Mbps in 1193.52 usec 46: 1533 bytes 1 times --> 0.60 Mbps in 19600.54 usec 47: 1536 bytes 1 times --> 0.46 Mbps in 25262.52 usec 48: 1539 bytes 1 times --> 0.57 Mbps in 20745.54 usec 49: 2045 bytes 1 times --> 0.74 Mbps in 20971.95 usec ... On loop 46, as the packet size exceeds the MTU (1500) performance falls from 6.56Mbps to 0.60Mbps.Going back to 100baseTX-FD, but still forced (autonegotiation off), the same occurs: On the target:
# mii-tool eth0 -F 100baseTx-FD # netpipeOn the host:
# netpipe -h <target-ip> -n 1 ... 58: 6141 bytes 1 times --> 39.74 Mbps in 1179.03 usec 59: 6144 bytes 1 times --> 41.83 Mbps in 1120.51 usec 60: 6147 bytes 1 times --> 41.39 Mbps in 1133.03 usec 61: 8189 bytes 1 times --> 6.36 Mbps in 9823.94 usec 62: 8192 bytes 1 times --> 6.56 Mbps in 9521.46 usec 63: 8195 bytes 1 times --> 6.56 Mbps in 9532.99 usec ... only this time it happens with a larger packet size (8189 bytes).With autonegotiation on, performance is ok and does not suffer these drops.
I've reproduced this on the mx28evk board but it also happens in my hardware, with different PHY on v3.10.
I also tried on an old v2.6.35 kernel and the issue was reproducible as well, though it happened with larger packet sizes than it happens with v3.10:
...75: 32771 bytes 1 times --> 49.64 Mbps in 5036.50 usec 76: 49149 bytes 1 times --> 46.18 Mbps in 8120.48 usec 77: 49152 bytes 1 times --> 43.30 Mbps in 8660.46 usec 78: 49155 bytes 1 times --> 40.10 Mbps in 9351.46 usec 79: 65533 bytes 1 times --> 2.03 Mbps in 246061.04 usec 80: 65536 bytes 1 times --> 2.21 Mbps in 226516.50 usec 81: 65539 bytes 1 times --> 1.45 Mbps in 344196.46 usec...
Could there be any issue with packet fragmentation?
I tried the same on imx6sabresd but here the issue is not reproducible. I don't know if the higher CPU frequency might be hiding the problem, though.
Quoted 8 lines
Quoted 2 lines
Any idea about what can make the difference between forcing media vs autonegotiation?
Let me ask, this might be unrelated, but I will still go ahead. Do you also observe packetloss? You can check with iperf:
On host machine (PC): iperf -u -s -l 4M -i 60 On target: iperf -u -c <hostip> -t 3600 -B 100M -i 60
Yes, with forced 100baseTX-FD there is a small packet loss:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-60.0 sec 339 MBytes 47.4 Mbits/sec 0.075 ms 61/242070 (0.025%) [ 3] 60.0-120.0 sec 339 MBytes 47.4 Mbits/sec 0.209 ms 45/242122 (0.019%) [ 3] 120.0-180.0 sec 339 MBytes 47.5 Mbits/sec 0.084 ms 70/242237 (0.029%) [ 3] 180.0-240.0 sec 339 MBytes 47.4 Mbits/sec 0.030 ms 80/241993 (0.033%) [ 3] 240.0-300.0 sec 340 MBytes 47.5 Mbits/sec 0.042 ms 111/242363 (0.046%) [ 3] 300.0-360.0 sec 339 MBytes 47.4 Mbits/sec 0.038 ms 93/241972 (0.038%) [ 3] 360.0-420.0 sec 339 MBytes 47.5 Mbits/sec 0.030 ms 78/242214 (0.032%) [ 3] 420.0-480.0 sec 339 MBytes 47.4 Mbits/sec 0.090 ms 77/241980 (0.032%) [ 3] 480.0-540.0 sec 339 MBytes 47.4 Mbits/sec 0.025 ms 125/242058 (0.052%)
With autonegotiated 100baseTX-FD, there is not:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-60.0 sec 336 MBytes 47.0 Mbits/sec 0.038 ms 0/239673 (0%) [ 3] 60.0-120.0 sec 337 MBytes 47.1 Mbits/sec 0.078 ms 0/240353 (0%) [ 3] 120.0-180.0 sec 337 MBytes 47.1 Mbits/sec 0.047 ms 0/240054 (0%) [ 3] 180.0-240.0 sec 337 MBytes 47.1 Mbits/sec 0.038 ms 0/240195 (0%) [ 3] 240.0-300.0 sec 337 MBytes 47.1 Mbits/sec 0.038 ms 0/240109 (0%) [ 3] 300.0-360.0 sec 337 MBytes 47.1 Mbits/sec 0.035 ms 0/240101 (0%) [ 3] 360.0-420.0 sec 337 MBytes 47.0 Mbits/sec 0.031 ms 0/240032 (0%) [ 3] 420.0-480.0 sec 336 MBytes 47.0 Mbits/sec 0.036 ms 0/239912 (0%)
Best regards,
--
Hector Palacios
Re: FEC performance degradation with certain packet sizes
Hello,
I'm resending this thread (reworded the subject) with additional people on CC.
I found the issue happens also with auto-negotiated link and is reproducible on the i.MX6 as well as on the i.MX28. It looks like a problem with the fec driver.
Steps to reproduce:
On the target:
netpipe
On the host:
netpipe -h <target_ip> -n 5
At certain packet sizes (starting always at 1533 bytes), the performance drops dramatically:
On i.MX28:
[...]
42: 771 bytes 5 times --> 19.78 Mbps in 297.41 usec 43: 1021 bytes 5 times --> 23.29 Mbps in 334.41 usec 44: 1024 bytes 5 times --> 23.61 Mbps in 330.90 usec 45: 1027 bytes 5 times --> 23.43 Mbps in 334.41 usec 46: 1533 bytes 5 times --> 0.13 Mbps in 88817.49 usec 47: 1536 bytes 5 times --> 0.06 Mbps in 189914.91 usec 48: 1539 bytes 5 times --> 0.06 Mbps in 204917.19 usec 49: 2045 bytes 5 times --> 0.07 Mbps in 210931.79 usec 50: 2048 bytes 5 times --> 0.07 Mbps in 210919.10 usec 51: 2051 bytes 5 times --> 0.07 Mbps in 212915.71 usec 52: 3069 bytes 5 times --> 35.42 Mbps in 661.01 usec 53: 3072 bytes 5 times --> 35.57 Mbps in 659.00 usec 54: 3075 bytes 5 times --> 35.42 Mbps in 662.29 usec 55: 4093 bytes 5 times --> 40.03 Mbps in 780.19 usec 56: 4096 bytes 5 times --> 40.75 Mbps in 766.79 usec 57: 4099 bytes 5 times --> 40.64 Mbps in 769.49 usec 58: 6141 bytes 5 times --> 3.08 Mbps in 15187.90 usec 59: 6144 bytes 5 times --> 2.94 Mbps in 15928.19 usec 60: 6147 bytes 5 times --> 5.57 Mbps in 8418.91 usec 61: 8189 bytes 5 times --> 1.34 Mbps in 46574.90 usec 62: 8192 bytes 5 times --> 2.17 Mbps in 28781.99 usec 63: 8195 bytes 5 times --> 1.36 Mbps in 45923.69 usec 64: 12285 bytes 5 times --> 51.78 Mbps in 1810.21 usec 65: 12288 bytes 5 times --> 50.46 Mbps in 1857.81 usec 66: 12291 bytes 5 times --> 54.01 Mbps in 1736.21 usec 67: 16381 bytes 5 times --> 55.86 Mbps in 2237.50 usec 68: 16384 bytes 5 times --> 56.93 Mbps in 2195.79 usec 69: 16387 bytes 5 times --> 35.62 Mbps in 3509.60 usec 70: 24573 bytes 5 times --> 7.19 Mbps in 26075.60 usec 71: 24576 bytes 5 times --> 58.36 Mbps in 3212.59 usec 72: 24579 bytes 5 times --> 7.92 Mbps in 23678.90 usec 73: 32765 bytes 5 times --> 58.14 Mbps in 4299.79 usec 74: 32768 bytes 5 times --> 5.34 Mbps in 46810.20 usec 75: 32771 bytes 5 times --> 41.51 Mbps in 6023.21 usec 76: 49149 bytes 5 times --> 49.62 Mbps in 7557.20 usec 77: 49152 bytes 5 times --> 48.82 Mbps in 7681.11 usec
On i.MX6:
[...]
42: 771 bytes 5 times --> 16.21 Mbps in 362.91 usec 43: 1021 bytes 5 times --> 17.97 Mbps in 433.51 usec 44: 1024 bytes 5 times --> 18.19 Mbps in 429.40 usec 45: 1027 bytes 5 times --> 18.16 Mbps in 431.41 usec 46: 1533 bytes 5 times --> 2.35 Mbps in 4970.11 usec 47: 1536 bytes 5 times --> 2.36 Mbps in 4959.91 usec 48: 1539 bytes 5 times --> 2.37 Mbps in 4959.20 usec 49: 2045 bytes 5 times --> 3.14 Mbps in 4972.31 usec 50: 2048 bytes 5 times --> 3.15 Mbps in 4959.50 usec 51: 2051 bytes 5 times --> 3.15 Mbps in 4960.01 usec 52: 3069 bytes 5 times --> 4.70 Mbps in 4984.19 usec 53: 3072 bytes 5 times --> 4.73 Mbps in 4960.10 usec 54: 3075 bytes 5 times --> 4.73 Mbps in 4957.81 usec 55: 4093 bytes 5 times --> 6.29 Mbps in 4966.71 usec 56: 4096 bytes 5 times --> 6.30 Mbps in 4962.00 usec 57: 4099 bytes 5 times --> 6.31 Mbps in 4957.71 usec 58: 6141 bytes 5 times --> 49.25 Mbps in 951.40 usec 59: 6144 bytes 5 times --> 49.23 Mbps in 952.21 usec 60: 6147 bytes 5 times --> 49.18 Mbps in 953.69 usec
Does anyone have any clue about where the problem might be?
Best regards,
--
Hector Palacios
Quoted 103 lines · Hector Palacios
Quoted 64 lines · Marek Vasut
Hi Hector,
Quoted 62 lines
Hello,
When forcing the Ethernet PHY link media with ethtool/mii-tool on the i.MX28 I've seen important performance degradation as the packet size increases.
On the target:
# mii-tool eth0 -F 10baseT-FD # netpipeOn the host:
# netpipe -h <target-ip> -n 1 ... 44: 1024 bytes 1 times --> 6.56 Mbps in 1191.00 usec 45: 1027 bytes 1 times --> 6.56 Mbps in 1193.52 usec 46: 1533 bytes 1 times --> 0.60 Mbps in 19600.54 usec 47: 1536 bytes 1 times --> 0.46 Mbps in 25262.52 usec 48: 1539 bytes 1 times --> 0.57 Mbps in 20745.54 usec 49: 2045 bytes 1 times --> 0.74 Mbps in 20971.95 usec ... On loop 46, as the packet size exceeds the MTU (1500) performance falls from 6.56Mbps to 0.60Mbps.Going back to 100baseTX-FD, but still forced (autonegotiation off), the same occurs: On the target:
# mii-tool eth0 -F 100baseTx-FD # netpipeOn the host:
# netpipe -h <target-ip> -n 1 ... 58: 6141 bytes 1 times --> 39.74 Mbps in 1179.03 usec 59: 6144 bytes 1 times --> 41.83 Mbps in 1120.51 usec 60: 6147 bytes 1 times --> 41.39 Mbps in 1133.03 usec 61: 8189 bytes 1 times --> 6.36 Mbps in 9823.94 usec 62: 8192 bytes 1 times --> 6.56 Mbps in 9521.46 usec 63: 8195 bytes 1 times --> 6.56 Mbps in 9532.99 usec ... only this time it happens with a larger packet size (8189 bytes).With autonegotiation on, performance is ok and does not suffer these drops.
I've reproduced this on the mx28evk board but it also happens in my hardware, with different PHY on v3.10.
I also tried on an old v2.6.35 kernel and the issue was reproducible as well, though it happened with larger packet sizes than it happens with v3.10:
...75: 32771 bytes 1 times --> 49.64 Mbps in 5036.50 usec 76: 49149 bytes 1 times --> 46.18 Mbps in 8120.48 usec 77: 49152 bytes 1 times --> 43.30 Mbps in 8660.46 usec 78: 49155 bytes 1 times --> 40.10 Mbps in 9351.46 usec 79: 65533 bytes 1 times --> 2.03 Mbps in 246061.04 usec 80: 65536 bytes 1 times --> 2.21 Mbps in 226516.50 usec 81: 65539 bytes 1 times --> 1.45 Mbps in 344196.46 usec...
Could there be any issue with packet fragmentation?
I tried the same on imx6sabresd but here the issue is not reproducible. I don't know if the higher CPU frequency might be hiding the problem, though.Quoted 8 lines
Quoted 2 lines
Any idea about what can make the difference between forcing media vs autonegotiation?
Let me ask, this might be unrelated, but I will still go ahead. Do you also observe packetloss? You can check with iperf:
On host machine (PC): iperf -u -s -l 4M -i 60 On target: iperf -u -c <hostip> -t 3600 -B 100M -i 60
Yes, with forced 100baseTX-FD there is a small packet loss:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-60.0 sec 339 MBytes 47.4 Mbits/sec 0.075 ms 61/242070 (0.025%) [ 3] 60.0-120.0 sec 339 MBytes 47.4 Mbits/sec 0.209 ms 45/242122 (0.019%) [ 3] 120.0-180.0 sec 339 MBytes 47.5 Mbits/sec 0.084 ms 70/242237 (0.029%) [ 3] 180.0-240.0 sec 339 MBytes 47.4 Mbits/sec 0.030 ms 80/241993 (0.033%) [ 3] 240.0-300.0 sec 340 MBytes 47.5 Mbits/sec 0.042 ms 111/242363 (0.046%) [ 3] 300.0-360.0 sec 339 MBytes 47.4 Mbits/sec 0.038 ms 93/241972 (0.038%) [ 3] 360.0-420.0 sec 339 MBytes 47.5 Mbits/sec 0.030 ms 78/242214 (0.032%) [ 3] 420.0-480.0 sec 339 MBytes 47.4 Mbits/sec 0.090 ms 77/241980 (0.032%) [ 3] 480.0-540.0 sec 339 MBytes 47.4 Mbits/sec 0.025 ms 125/242058 (0.052%)With autonegotiated 100baseTX-FD, there is not:
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-60.0 sec 336 MBytes 47.0 Mbits/sec 0.038 ms 0/239673 (0%) [ 3] 60.0-120.0 sec 337 MBytes 47.1 Mbits/sec 0.078 ms 0/240353 (0%) [ 3] 120.0-180.0 sec 337 MBytes 47.1 Mbits/sec 0.047 ms 0/240054 (0%) [ 3] 180.0-240.0 sec 337 MBytes 47.1 Mbits/sec 0.038 ms 0/240195 (0%) [ 3] 240.0-300.0 sec 337 MBytes 47.1 Mbits/sec 0.038 ms 0/240109 (0%) [ 3] 300.0-360.0 sec 337 MBytes 47.1 Mbits/sec 0.035 ms 0/240101 (0%) [ 3] 360.0-420.0 sec 337 MBytes 47.0 Mbits/sec 0.031 ms 0/240032 (0%) [ 3] 420.0-480.0 sec 336 MBytes 47.0 Mbits/sec 0.036 ms 0/239912 (0%)Best regards,
--
Hector Palacios
Re: FEC performance degradation with certain packet sizes
Quoted 76 lines · Hector Palacios
Hello,
I'm resending this thread (reworded the subject) with additional people on CC. I found the issue happens also with auto-negotiated link and is reproducible on the i.MX6 as well as on the i.MX28. It looks like a problem with the fec driver.
Steps to reproduce:
On the target:
netpipe
On the host:
netpipe -h <target_ip> -n 5At certain packet sizes (starting always at 1533 bytes), the performance drops dramatically:
On i.MX28:
[...]42: 771 bytes 5 times --> 19.78 Mbps in 297.41 usec 43: 1021 bytes 5 times --> 23.29 Mbps in 334.41 usec 44: 1024 bytes 5 times --> 23.61 Mbps in 330.90 usec 45: 1027 bytes 5 times --> 23.43 Mbps in 334.41 usec 46: 1533 bytes 5 times --> 0.13 Mbps in 88817.49 usec 47: 1536 bytes 5 times --> 0.06 Mbps in 189914.91 usec 48: 1539 bytes 5 times --> 0.06 Mbps in 204917.19 usec 49: 2045 bytes 5 times --> 0.07 Mbps in 210931.79 usec 50: 2048 bytes 5 times --> 0.07 Mbps in 210919.10 usec 51: 2051 bytes 5 times --> 0.07 Mbps in 212915.71 usec 52: 3069 bytes 5 times --> 35.42 Mbps in 661.01 usec 53: 3072 bytes 5 times --> 35.57 Mbps in 659.00 usec 54: 3075 bytes 5 times --> 35.42 Mbps in 662.29 usec 55: 4093 bytes 5 times --> 40.03 Mbps in 780.19 usec 56: 4096 bytes 5 times --> 40.75 Mbps in 766.79 usec 57: 4099 bytes 5 times --> 40.64 Mbps in 769.49 usec 58: 6141 bytes 5 times --> 3.08 Mbps in 15187.90 usec 59: 6144 bytes 5 times --> 2.94 Mbps in 15928.19 usec 60: 6147 bytes 5 times --> 5.57 Mbps in 8418.91 usec 61: 8189 bytes 5 times --> 1.34 Mbps in 46574.90 usec 62: 8192 bytes 5 times --> 2.17 Mbps in 28781.99 usec 63: 8195 bytes 5 times --> 1.36 Mbps in 45923.69 usec 64: 12285 bytes 5 times --> 51.78 Mbps in 1810.21 usec 65: 12288 bytes 5 times --> 50.46 Mbps in 1857.81 usec 66: 12291 bytes 5 times --> 54.01 Mbps in 1736.21 usec 67: 16381 bytes 5 times --> 55.86 Mbps in 2237.50 usec 68: 16384 bytes 5 times --> 56.93 Mbps in 2195.79 usec 69: 16387 bytes 5 times --> 35.62 Mbps in 3509.60 usec 70: 24573 bytes 5 times --> 7.19 Mbps in 26075.60 usec 71: 24576 bytes 5 times --> 58.36 Mbps in 3212.59 usec 72: 24579 bytes 5 times --> 7.92 Mbps in 23678.90 usec 73: 32765 bytes 5 times --> 58.14 Mbps in 4299.79 usec 74: 32768 bytes 5 times --> 5.34 Mbps in 46810.20 usec 75: 32771 bytes 5 times --> 41.51 Mbps in 6023.21 usec 76: 49149 bytes 5 times --> 49.62 Mbps in 7557.20 usec 77: 49152 bytes 5 times --> 48.82 Mbps in 7681.11 usecOn i.MX6:
[...]42: 771 bytes 5 times --> 16.21 Mbps in 362.91 usec 43: 1021 bytes 5 times --> 17.97 Mbps in 433.51 usec 44: 1024 bytes 5 times --> 18.19 Mbps in 429.40 usec 45: 1027 bytes 5 times --> 18.16 Mbps in 431.41 usec 46: 1533 bytes 5 times --> 2.35 Mbps in 4970.11 usec 47: 1536 bytes 5 times --> 2.36 Mbps in 4959.91 usec 48: 1539 bytes 5 times --> 2.37 Mbps in 4959.20 usec 49: 2045 bytes 5 times --> 3.14 Mbps in 4972.31 usec 50: 2048 bytes 5 times --> 3.15 Mbps in 4959.50 usec 51: 2051 bytes 5 times --> 3.15 Mbps in 4960.01 usec 52: 3069 bytes 5 times --> 4.70 Mbps in 4984.19 usec 53: 3072 bytes 5 times --> 4.73 Mbps in 4960.10 usec 54: 3075 bytes 5 times --> 4.73 Mbps in 4957.81 usec 55: 4093 bytes 5 times --> 6.29 Mbps in 4966.71 usec 56: 4096 bytes 5 times --> 6.30 Mbps in 4962.00 usec 57: 4099 bytes 5 times --> 6.31 Mbps in 4957.71 usec 58: 6141 bytes 5 times --> 49.25 Mbps in 951.40 usec 59: 6144 bytes 5 times --> 49.23 Mbps in 952.21 usec 60: 6147 bytes 5 times --> 49.18 Mbps in 953.69 usec
Quoted 1 line
Does anyone have any clue about where the problem might be?
What is the driver in use ?
Have you tried disabling tso/gso ?
ethtool -k eth0
ethtool -K eth0 tso off gso off
RE: FEC performance degradation with certain packet sizes
From: Eric Dumazet <[email protected]>
Data: Thursday, December 19, 2013 1:39 AM
Quoted 87 lines
To: Hector Palacios
Cc: Marek Vasut; [email protected]; Estevam Fabio-R49496; [email protected]; [email protected]; Li Frank-B20596; Duan Fugang- B38611; [email protected]; [email protected]
Subject: Re: FEC performance degradation with certain packet sizesQuoted 4 lines · Hector Palacios
Hello,
I'm resending this thread (reworded the subject) with additional people on CC. I found the issue happens also with auto-negotiated link and is reproducible
on the
Quoted 9 lines
i.MX6 as well as on the i.MX28. It looks like a problem with the fec driver.
Steps to reproduce:
On the target:
netpipe
On the host:
netpipe -h <target_ip> -n 5At certain packet sizes (starting always at 1533 bytes), the performance
drops
Quoted 63 lines
dramatically:
On i.MX28:
[...]42: 771 bytes 5 times --> 19.78 Mbps in 297.41 usec 43: 1021 bytes 5 times --> 23.29 Mbps in 334.41 usec 44: 1024 bytes 5 times --> 23.61 Mbps in 330.90 usec 45: 1027 bytes 5 times --> 23.43 Mbps in 334.41 usec 46: 1533 bytes 5 times --> 0.13 Mbps in 88817.49 usec 47: 1536 bytes 5 times --> 0.06 Mbps in 189914.91 usec 48: 1539 bytes 5 times --> 0.06 Mbps in 204917.19 usec 49: 2045 bytes 5 times --> 0.07 Mbps in 210931.79 usec 50: 2048 bytes 5 times --> 0.07 Mbps in 210919.10 usec 51: 2051 bytes 5 times --> 0.07 Mbps in 212915.71 usec 52: 3069 bytes 5 times --> 35.42 Mbps in 661.01 usec 53: 3072 bytes 5 times --> 35.57 Mbps in 659.00 usec 54: 3075 bytes 5 times --> 35.42 Mbps in 662.29 usec 55: 4093 bytes 5 times --> 40.03 Mbps in 780.19 usec 56: 4096 bytes 5 times --> 40.75 Mbps in 766.79 usec 57: 4099 bytes 5 times --> 40.64 Mbps in 769.49 usec 58: 6141 bytes 5 times --> 3.08 Mbps in 15187.90 usec 59: 6144 bytes 5 times --> 2.94 Mbps in 15928.19 usec 60: 6147 bytes 5 times --> 5.57 Mbps in 8418.91 usec 61: 8189 bytes 5 times --> 1.34 Mbps in 46574.90 usec 62: 8192 bytes 5 times --> 2.17 Mbps in 28781.99 usec 63: 8195 bytes 5 times --> 1.36 Mbps in 45923.69 usec 64: 12285 bytes 5 times --> 51.78 Mbps in 1810.21 usec 65: 12288 bytes 5 times --> 50.46 Mbps in 1857.81 usec 66: 12291 bytes 5 times --> 54.01 Mbps in 1736.21 usec 67: 16381 bytes 5 times --> 55.86 Mbps in 2237.50 usec 68: 16384 bytes 5 times --> 56.93 Mbps in 2195.79 usec 69: 16387 bytes 5 times --> 35.62 Mbps in 3509.60 usec 70: 24573 bytes 5 times --> 7.19 Mbps in 26075.60 usec 71: 24576 bytes 5 times --> 58.36 Mbps in 3212.59 usec 72: 24579 bytes 5 times --> 7.92 Mbps in 23678.90 usec 73: 32765 bytes 5 times --> 58.14 Mbps in 4299.79 usec 74: 32768 bytes 5 times --> 5.34 Mbps in 46810.20 usec 75: 32771 bytes 5 times --> 41.51 Mbps in 6023.21 usec 76: 49149 bytes 5 times --> 49.62 Mbps in 7557.20 usec 77: 49152 bytes 5 times --> 48.82 Mbps in 7681.11 usecOn i.MX6:
[...]42: 771 bytes 5 times --> 16.21 Mbps in 362.91 usec 43: 1021 bytes 5 times --> 17.97 Mbps in 433.51 usec 44: 1024 bytes 5 times --> 18.19 Mbps in 429.40 usec 45: 1027 bytes 5 times --> 18.16 Mbps in 431.41 usec 46: 1533 bytes 5 times --> 2.35 Mbps in 4970.11 usec 47: 1536 bytes 5 times --> 2.36 Mbps in 4959.91 usec 48: 1539 bytes 5 times --> 2.37 Mbps in 4959.20 usec 49: 2045 bytes 5 times --> 3.14 Mbps in 4972.31 usec 50: 2048 bytes 5 times --> 3.15 Mbps in 4959.50 usec 51: 2051 bytes 5 times --> 3.15 Mbps in 4960.01 usec 52: 3069 bytes 5 times --> 4.70 Mbps in 4984.19 usec 53: 3072 bytes 5 times --> 4.73 Mbps in 4960.10 usec 54: 3075 bytes 5 times --> 4.73 Mbps in 4957.81 usec 55: 4093 bytes 5 times --> 6.29 Mbps in 4966.71 usec 56: 4096 bytes 5 times --> 6.30 Mbps in 4962.00 usec 57: 4099 bytes 5 times --> 6.31 Mbps in 4957.71 usec 58: 6141 bytes 5 times --> 49.25 Mbps in 951.40 usec 59: 6144 bytes 5 times --> 49.23 Mbps in 952.21 usec 60: 6147 bytes 5 times --> 49.18 Mbps in 953.69 usecQuoted 1 line
Does anyone have any clue about where the problem might be?
Quoted 8 lines
What is the driver in use ?
Have you tried disabling tso/gso ?
ethtool -k eth0
ethtool -K eth0 tso off gso off
Enet IP don't support tso feature.
I will reproduce the issue in imx6q/dl sd platform, and analyze the issue. Previous test, we don't use netpipe tool test ethernet performance.
Thanks,
Andy
RE: FEC performance degradation with certain packet sizes
Quoted 4 lines · On Thu, 2013-12-19 at 02:44 +0000, [email protected] wrote:
Enet IP don't support tso feature.
I will reproduce the issue in imx6q/dl sd platform, and analyze the issue. Previous test, we don't use netpipe tool test ethernet performance.
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c seems broken...
If tx_skb_align_workaround() returns NULL, returning NETDEV_TX_BUSY is the worst possible thing to do.
Packet should be dropped instead.
Probably not related to your issue.
Re: FEC performance degradation with certain packet sizes
Quoted 8 lines · Eric Dumazet
Quoted 4 lines · On Thu, 2013-12-19 at 02:44 +0000, [email protected] wrote:
Enet IP don't support tso feature.
I will reproduce the issue in imx6q/dl sd platform, and analyze the issue. Previous test, we don't use netpipe tool test ethernet performance.
drivers/net/ethernet/freescale/fs_enet/fs_enet-main.cseems broken...
The fec driver running on IMX is drivers/net/ethernet/freescale/fec_main.c
Shawn
Quoted 9 lines
If
tx_skb_align_workaround()returns NULL, returningNETDEV_TX_BUSYis the worst possible thing to do.Packet should be dropped instead.
Probably not related to your issue.
RE: FEC performance degradation with certain packet sizes
In reply to Hector PalaciosFrom: Hector Palacios <[email protected]>
Data: Thursday, December 19, 2013 12:44 AM
Quoted 83 lines
To: Marek Vasut; [email protected]
Cc: Estevam Fabio-R49496; [email protected]; [email protected]; Li Frank-B20596; Duan Fugang-B38611; [email protected]; [email protected]
Subject: Re: FEC performance degradation with certain packet sizesHello,
I'm resending this thread (reworded the subject) with additional people on CC. I found the issue happens also with auto-negotiated link and is reproducible on the
i.MX6 as well as on the i.MX28. It looks like a problem with the fec driver.Steps to reproduce:
On the target:
netpipe
On the host:
netpipe -h <target_ip> -n 5At certain packet sizes (starting always at 1533 bytes), the performance drops dramatically:
On i.MX28:
[...]42: 771 bytes 5 times --> 19.78 Mbps in 297.41 usec 43: 1021 bytes 5 times --> 23.29 Mbps in 334.41 usec 44: 1024 bytes 5 times --> 23.61 Mbps in 330.90 usec 45: 1027 bytes 5 times --> 23.43 Mbps in 334.41 usec 46: 1533 bytes 5 times --> 0.13 Mbps in 88817.49 usec 47: 1536 bytes 5 times --> 0.06 Mbps in 189914.91 usec 48: 1539 bytes 5 times --> 0.06 Mbps in 204917.19 usec 49: 2045 bytes 5 times --> 0.07 Mbps in 210931.79 usec 50: 2048 bytes 5 times --> 0.07 Mbps in 210919.10 usec 51: 2051 bytes 5 times --> 0.07 Mbps in 212915.71 usec 52: 3069 bytes 5 times --> 35.42 Mbps in 661.01 usec 53: 3072 bytes 5 times --> 35.57 Mbps in 659.00 usec 54: 3075 bytes 5 times --> 35.42 Mbps in 662.29 usec 55: 4093 bytes 5 times --> 40.03 Mbps in 780.19 usec 56: 4096 bytes 5 times --> 40.75 Mbps in 766.79 usec 57: 4099 bytes 5 times --> 40.64 Mbps in 769.49 usec 58: 6141 bytes 5 times --> 3.08 Mbps in 15187.90 usec 59: 6144 bytes 5 times --> 2.94 Mbps in 15928.19 usec 60: 6147 bytes 5 times --> 5.57 Mbps in 8418.91 usec 61: 8189 bytes 5 times --> 1.34 Mbps in 46574.90 usec 62: 8192 bytes 5 times --> 2.17 Mbps in 28781.99 usec 63: 8195 bytes 5 times --> 1.36 Mbps in 45923.69 usec 64: 12285 bytes 5 times --> 51.78 Mbps in 1810.21 usec 65: 12288 bytes 5 times --> 50.46 Mbps in 1857.81 usec 66: 12291 bytes 5 times --> 54.01 Mbps in 1736.21 usec 67: 16381 bytes 5 times --> 55.86 Mbps in 2237.50 usec 68: 16384 bytes 5 times --> 56.93 Mbps in 2195.79 usec 69: 16387 bytes 5 times --> 35.62 Mbps in 3509.60 usec 70: 24573 bytes 5 times --> 7.19 Mbps in 26075.60 usec 71: 24576 bytes 5 times --> 58.36 Mbps in 3212.59 usec 72: 24579 bytes 5 times --> 7.92 Mbps in 23678.90 usec 73: 32765 bytes 5 times --> 58.14 Mbps in 4299.79 usec 74: 32768 bytes 5 times --> 5.34 Mbps in 46810.20 usec 75: 32771 bytes 5 times --> 41.51 Mbps in 6023.21 usec 76: 49149 bytes 5 times --> 49.62 Mbps in 7557.20 usec 77: 49152 bytes 5 times --> 48.82 Mbps in 7681.11 usecOn i.MX6:
[...]42: 771 bytes 5 times --> 16.21 Mbps in 362.91 usec 43: 1021 bytes 5 times --> 17.97 Mbps in 433.51 usec 44: 1024 bytes 5 times --> 18.19 Mbps in 429.40 usec 45: 1027 bytes 5 times --> 18.16 Mbps in 431.41 usec 46: 1533 bytes 5 times --> 2.35 Mbps in 4970.11 usec 47: 1536 bytes 5 times --> 2.36 Mbps in 4959.91 usec 48: 1539 bytes 5 times --> 2.37 Mbps in 4959.20 usec 49: 2045 bytes 5 times --> 3.14 Mbps in 4972.31 usec 50: 2048 bytes 5 times --> 3.15 Mbps in 4959.50 usec 51: 2051 bytes 5 times --> 3.15 Mbps in 4960.01 usec 52: 3069 bytes 5 times --> 4.70 Mbps in 4984.19 usec 53: 3072 bytes 5 times --> 4.73 Mbps in 4960.10 usec 54: 3075 bytes 5 times --> 4.73 Mbps in 4957.81 usec 55: 4093 bytes 5 times --> 6.29 Mbps in 4966.71 usec 56: 4096 bytes 5 times --> 6.30 Mbps in 4962.00 usec 57: 4099 bytes 5 times --> 6.31 Mbps in 4957.71 usec 58: 6141 bytes 5 times --> 49.25 Mbps in 951.40 usec 59: 6144 bytes 5 times --> 49.23 Mbps in 952.21 usec 60: 6147 bytes 5 times --> 49.18 Mbps in 953.69 usec
Quoted 6 lines
Does anyone have any clue about where the problem might be?
Best regards,
--
Hector Palacios
I can reproduce the issue on imx6q/dl platform with freescale internal kernel tree.
This issue must be related to cpufreq, when set scaling_governor to performance:
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
And then do NPtcp test, the result as below:
24: 99 bytes 5 times --> 9.89 Mbps in 76.40 usec 25: 125 bytes 5 times --> 12.10 Mbps in 78.80 usec 26: 128 bytes 5 times --> 12.27 Mbps in 79.60 usec 27: 131 bytes 5 times --> 12.80 Mbps in 78.10 usec 28: 189 bytes 5 times --> 18.00 Mbps in 80.10 usec 29: 192 bytes 5 times --> 18.31 Mbps in 80.00 usec 30: 195 bytes 5 times --> 18.41 Mbps in 80.80 usec 31: 253 bytes 5 times --> 23.34 Mbps in 82.70 usec 32: 256 bytes 5 times --> 23.91 Mbps in 81.70 usec 33: 259 bytes 5 times --> 24.19 Mbps in 81.70 usec 34: 381 bytes 5 times --> 33.18 Mbps in 87.60 usec 35: 384 bytes 5 times --> 33.87 Mbps in 86.50 usec 36: 387 bytes 5 times --> 34.41 Mbps in 85.80 usec 37: 509 bytes 5 times --> 42.72 Mbps in 90.90 usec 38: 512 bytes 5 times --> 42.60 Mbps in 91.70 usec 39: 515 bytes 5 times --> 42.80 Mbps in 91.80 usec 40: 765 bytes 5 times --> 56.45 Mbps in 103.40 usec 41: 768 bytes 5 times --> 57.11 Mbps in 102.60 usec 42: 771 bytes 5 times --> 57.22 Mbps in 102.80 usec 43: 1021 bytes 5 times --> 70.69 Mbps in 110.20 usec 44: 1024 bytes 5 times --> 70.70 Mbps in 110.50 usec 45: 1027 bytes 5 times --> 69.59 Mbps in 112.60 usec 46: 1533 bytes 5 times --> 73.56 Mbps in 159.00 usec 47: 1536 bytes 5 times --> 72.92 Mbps in 160.70 usec 48: 1539 bytes 5 times --> 73.80 Mbps in 159.10 usec 49: 2045 bytes 5 times --> 93.59 Mbps in 166.70 usec 50: 2048 bytes 5 times --> 94.07 Mbps in 166.10 usec 51: 2051 bytes 5 times --> 92.92 Mbps in 168.40 usec 52: 3069 bytes 5 times --> 123.43 Mbps in 189.70 usec 53: 3072 bytes 5 times --> 123.68 Mbps in 189.50 usec
Thanks,
Andy
Re: FEC performance degradation with certain packet sizes
Dear Andy,
Quoted 31 lines · On 12/20/2013 04:35 AM, [email protected] wrote:
[...]
I can reproduce the issue on imx6q/dl platform with freescale internal kernel tree.
This issue must be related to cpufreq, when set
scaling_governorto performance:
echo performance >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governorAnd then do NPtcp test, the result as below:
24: 99 bytes 5 times --> 9.89 Mbps in 76.40 usec 25: 125 bytes 5 times --> 12.10 Mbps in 78.80 usec 26: 128 bytes 5 times --> 12.27 Mbps in 79.60 usec 27: 131 bytes 5 times --> 12.80 Mbps in 78.10 usec 28: 189 bytes 5 times --> 18.00 Mbps in 80.10 usec 29: 192 bytes 5 times --> 18.31 Mbps in 80.00 usec 30: 195 bytes 5 times --> 18.41 Mbps in 80.80 usec 31: 253 bytes 5 times --> 23.34 Mbps in 82.70 usec 32: 256 bytes 5 times --> 23.91 Mbps in 81.70 usec 33: 259 bytes 5 times --> 24.19 Mbps in 81.70 usec 34: 381 bytes 5 times --> 33.18 Mbps in 87.60 usec 35: 384 bytes 5 times --> 33.87 Mbps in 86.50 usec 36: 387 bytes 5 times --> 34.41 Mbps in 85.80 usec 37: 509 bytes 5 times --> 42.72 Mbps in 90.90 usec 38: 512 bytes 5 times --> 42.60 Mbps in 91.70 usec 39: 515 bytes 5 times --> 42.80 Mbps in 91.80 usec 40: 765 bytes 5 times --> 56.45 Mbps in 103.40 usec 41: 768 bytes 5 times --> 57.11 Mbps in 102.60 usec 42: 771 bytes 5 times --> 57.22 Mbps in 102.80 usec 43: 1021 bytes 5 times --> 70.69 Mbps in 110.20 usec 44: 1024 bytes 5 times --> 70.70 Mbps in 110.50 usec 45: 1027 bytes 5 times --> 69.59 Mbps in 112.60 usec
Quoted 8 lines
46: 1533 bytes 5 times --> 73.56 Mbps in 159.00 usec 47: 1536 bytes 5 times --> 72.92 Mbps in 160.70 usec 48: 1539 bytes 5 times --> 73.80 Mbps in 159.10 usec 49: 2045 bytes 5 times --> 93.59 Mbps in 166.70 usec 50: 2048 bytes 5 times --> 94.07 Mbps in 166.10 usec 51: 2051 bytes 5 times --> 92.92 Mbps in 168.40 usec 52: 3069 bytes 5 times --> 123.43 Mbps in 189.70 usec 53: 3072 bytes 5 times --> 123.68 Mbps in 189.50 usec
You are right. Unfortunately, this does not work on i.MX28 (at least for me). Couldn't it be that the cpufreq is masking the problem on the i.MX6?
Best regards,
--
Hector Palacios
RE: FEC performance degradation with certain packet sizes
From: Hector Palacios <[email protected]>
Data: Friday, December 20, 2013 11:02 PM
Quoted 51 lines
To: Duan Fugang-B38611; Marek Vasut; [email protected]
Cc: Estevam Fabio-R49496; [email protected]; [email protected]; Li Frank-B20596; [email protected]; [email protected]
Subject: Re: FEC performance degradation with certain packet sizesDear Andy,
Quoted 3 lines · On 12/20/2013 04:35 AM, [email protected] wrote:
[...]
I can reproduce the issue on imx6q/dl platform with freescale internal kernel
tree.
Quoted 2 lines
This issue must be related to cpufreq, when set
scaling_governortoperformance:
Quoted 27 lines
echo performance >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governorAnd then do NPtcp test, the result as below:
24: 99 bytes 5 times --> 9.89 Mbps in 76.40 usec 25: 125 bytes 5 times --> 12.10 Mbps in 78.80 usec 26: 128 bytes 5 times --> 12.27 Mbps in 79.60 usec 27: 131 bytes 5 times --> 12.80 Mbps in 78.10 usec 28: 189 bytes 5 times --> 18.00 Mbps in 80.10 usec 29: 192 bytes 5 times --> 18.31 Mbps in 80.00 usec 30: 195 bytes 5 times --> 18.41 Mbps in 80.80 usec 31: 253 bytes 5 times --> 23.34 Mbps in 82.70 usec 32: 256 bytes 5 times --> 23.91 Mbps in 81.70 usec 33: 259 bytes 5 times --> 24.19 Mbps in 81.70 usec 34: 381 bytes 5 times --> 33.18 Mbps in 87.60 usec 35: 384 bytes 5 times --> 33.87 Mbps in 86.50 usec 36: 387 bytes 5 times --> 34.41 Mbps in 85.80 usec 37: 509 bytes 5 times --> 42.72 Mbps in 90.90 usec 38: 512 bytes 5 times --> 42.60 Mbps in 91.70 usec 39: 515 bytes 5 times --> 42.80 Mbps in 91.80 usec 40: 765 bytes 5 times --> 56.45 Mbps in 103.40 usec 41: 768 bytes 5 times --> 57.11 Mbps in 102.60 usec 42: 771 bytes 5 times --> 57.22 Mbps in 102.80 usec 43: 1021 bytes 5 times --> 70.69 Mbps in 110.20 usec 44: 1024 bytes 5 times --> 70.70 Mbps in 110.50 usec 45: 1027 bytes 5 times --> 69.59 Mbps in 112.60 usecQuoted 8 lines
46: 1533 bytes 5 times --> 73.56 Mbps in 159.00 usec 47: 1536 bytes 5 times --> 72.92 Mbps in 160.70 usec 48: 1539 bytes 5 times --> 73.80 Mbps in 159.10 usec 49: 2045 bytes 5 times --> 93.59 Mbps in 166.70 usec 50: 2048 bytes 5 times --> 94.07 Mbps in 166.10 usec 51: 2051 bytes 5 times --> 92.92 Mbps in 168.40 usec 52: 3069 bytes 5 times --> 123.43 Mbps in 189.70 usec 53: 3072 bytes 5 times --> 123.68 Mbps in 189.50 usec
Quoted 7 lines
You are right. Unfortunately, this does not work on i.MX28 (at least for me). Couldn't it be that the cpufreq is masking the problem on the i.MX6?
Best regards,
--
Hector Palacios
I will test it on imx28 platform. And then analyze the result.
Thanks,
Andy
RE: FEC performance degradation with certain packet sizes
In reply to Hector PalaciosFrom: Hector Palacios <[email protected]>
Sent: Friday, December 20, 2013 11:02 PM
Quoted 51 lines
To: Duan Fugang-B38611; Marek Vasut; [email protected]
Cc: Estevam Fabio-R49496; [email protected]; [email protected]; Li Frank-B20596; [email protected]; [email protected]
Subject: Re: FEC performance degradation with certain packet sizesDear Andy,
Quoted 3 lines · On 12/20/2013 04:35 AM, [email protected] wrote:
[...]
I can reproduce the issue on imx6q/dl platform with freescale internal kernel
tree.
Quoted 2 lines
This issue must be related to cpufreq, when set
scaling_governortoperformance:
Quoted 27 lines
echo performance >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governorAnd then do NPtcp test, the result as below:
24: 99 bytes 5 times --> 9.89 Mbps in 76.40 usec 25: 125 bytes 5 times --> 12.10 Mbps in 78.80 usec 26: 128 bytes 5 times --> 12.27 Mbps in 79.60 usec 27: 131 bytes 5 times --> 12.80 Mbps in 78.10 usec 28: 189 bytes 5 times --> 18.00 Mbps in 80.10 usec 29: 192 bytes 5 times --> 18.31 Mbps in 80.00 usec 30: 195 bytes 5 times --> 18.41 Mbps in 80.80 usec 31: 253 bytes 5 times --> 23.34 Mbps in 82.70 usec 32: 256 bytes 5 times --> 23.91 Mbps in 81.70 usec 33: 259 bytes 5 times --> 24.19 Mbps in 81.70 usec 34: 381 bytes 5 times --> 33.18 Mbps in 87.60 usec 35: 384 bytes 5 times --> 33.87 Mbps in 86.50 usec 36: 387 bytes 5 times --> 34.41 Mbps in 85.80 usec 37: 509 bytes 5 times --> 42.72 Mbps in 90.90 usec 38: 512 bytes 5 times --> 42.60 Mbps in 91.70 usec 39: 515 bytes 5 times --> 42.80 Mbps in 91.80 usec 40: 765 bytes 5 times --> 56.45 Mbps in 103.40 usec 41: 768 bytes 5 times --> 57.11 Mbps in 102.60 usec 42: 771 bytes 5 times --> 57.22 Mbps in 102.80 usec 43: 1021 bytes 5 times --> 70.69 Mbps in 110.20 usec 44: 1024 bytes 5 times --> 70.70 Mbps in 110.50 usec 45: 1027 bytes 5 times --> 69.59 Mbps in 112.60 usecQuoted 8 lines
46: 1533 bytes 5 times --> 73.56 Mbps in 159.00 usec 47: 1536 bytes 5 times --> 72.92 Mbps in 160.70 usec 48: 1539 bytes 5 times --> 73.80 Mbps in 159.10 usec 49: 2045 bytes 5 times --> 93.59 Mbps in 166.70 usec 50: 2048 bytes 5 times --> 94.07 Mbps in 166.10 usec 51: 2051 bytes 5 times --> 92.92 Mbps in 168.40 usec 52: 3069 bytes 5 times --> 123.43 Mbps in 189.70 usec 53: 3072 bytes 5 times --> 123.68 Mbps in 189.50 usec
Quoted 7 lines
You are right. Unfortunately, this does not work on i.MX28 (at least for me). Couldn't it be that the cpufreq is masking the problem on the i.MX6?
Best regards,
--
Hector Palacios
I reproduce the issue on imx28 evk platform, imx28 has no specific cpufreq driver. In kernel 3.13, the ethernet driver is almost the same for imx28 and imx6 since they use the Same enet IP, but imx6 enet IP have some evolution.
Now I don't know the cause. When I am free, I will dig out it.
Thanks,
Andy
Re: FEC performance degradation with certain packet sizes
Quoted 63 lines · On Monday, December 23, 2013 at 03:52:20 AM, [email protected] wrote:
From: Hector Palacios <[email protected]>
Sent: Friday, December 20, 2013 11:02 PMQuoted 53 lines
To: Duan Fugang-B38611; Marek Vasut; [email protected]
Cc: Estevam Fabio-R49496; [email protected]; [email protected]; Li Frank-B20596; [email protected]; [email protected]
Subject: Re: FEC performance degradation with certain packet sizesDear Andy,
Quoted 4 lines · On 12/20/2013 04:35 AM, [email protected] wrote:
[...]
I can reproduce the issue on imx6q/dl platform with freescale internal kernel
tree.
Quoted 1 line
This issue must be related to cpufreq, when set
scaling_governortoperformance:
Quoted 26 lines
echo performance >
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governorAnd then do NPtcp test, the result as below:
24: 99 bytes 5 times --> 9.89 Mbps in 76.40 usec 25: 125 bytes 5 times --> 12.10 Mbps in 78.80 usec 26: 128 bytes 5 times --> 12.27 Mbps in 79.60 usec 27: 131 bytes 5 times --> 12.80 Mbps in 78.10 usec 28: 189 bytes 5 times --> 18.00 Mbps in 80.10 usec 29: 192 bytes 5 times --> 18.31 Mbps in 80.00 usec 30: 195 bytes 5 times --> 18.41 Mbps in 80.80 usec 31: 253 bytes 5 times --> 23.34 Mbps in 82.70 usec 32: 256 bytes 5 times --> 23.91 Mbps in 81.70 usec 33: 259 bytes 5 times --> 24.19 Mbps in 81.70 usec 34: 381 bytes 5 times --> 33.18 Mbps in 87.60 usec 35: 384 bytes 5 times --> 33.87 Mbps in 86.50 usec 36: 387 bytes 5 times --> 34.41 Mbps in 85.80 usec 37: 509 bytes 5 times --> 42.72 Mbps in 90.90 usec 38: 512 bytes 5 times --> 42.60 Mbps in 91.70 usec 39: 515 bytes 5 times --> 42.80 Mbps in 91.80 usec 40: 765 bytes 5 times --> 56.45 Mbps in 103.40 usec 41: 768 bytes 5 times --> 57.11 Mbps in 102.60 usec 42: 771 bytes 5 times --> 57.22 Mbps in 102.80 usec 43: 1021 bytes 5 times --> 70.69 Mbps in 110.20 usec 44: 1024 bytes 5 times --> 70.70 Mbps in 110.50 usec 45: 1027 bytes 5 times --> 69.59 Mbps in 112.60 usecQuoted 8 lines
46: 1533 bytes 5 times --> 73.56 Mbps in 159.00 usec 47: 1536 bytes 5 times --> 72.92 Mbps in 160.70 usec 48: 1539 bytes 5 times --> 73.80 Mbps in 159.10 usec 49: 2045 bytes 5 times --> 93.59 Mbps in 166.70 usec 50: 2048 bytes 5 times --> 94.07 Mbps in 166.10 usec 51: 2051 bytes 5 times --> 92.92 Mbps in 168.40 usec 52: 3069 bytes 5 times --> 123.43 Mbps in 189.70 usec 53: 3072 bytes 5 times --> 123.68 Mbps in 189.50 usecQuoted 6 lines
You are right. Unfortunately, this does not work on i.MX28 (at least for me). Couldn't it be that the cpufreq is masking the problem on the i.MX6?
Best regards,
--
Hector Palacios
Quoted 6 lines
I reproduce the issue on imx28 evk platform, imx28 has no specific cpufreq driver. In kernel 3.13, the ethernet driver is almost the same for imx28 and imx6 since they use the Same enet IP, but imx6 enet IP have some evolution.
Now I don't know the cause. When I am free, I will dig out it.
Hi! Is there any progress on this issue ? Did you manage to find anything out please?
Best regards,
Marek Vasut