This post from 2012 seems to indicate the AM335X in Linux could do 31MB/s over GbE with the CPU at 99% busy, does this sound right? Are there any other benchmark info for GbE on AM335x? I am particularly interested in CPU overhead, i.e. is the CPU free to do some other processing while GbE traffic is happening?
thanks for any tips!
Posted by David Frith |
These are my results for running iperf on the EVM :-
root@am335x-evm:~# iperf -c daedsw
------------------------------------------------------------
Client connecting to daedsw, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 172.17.1.125 port 56845 connected with 172.17.10.41 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 314 MBytes 264 Mbits/sec
------------------------------------------------------------
Client connecting to daedsw, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[ 3] local 172.17.1.125 port 56845 connected with 172.17.10.41 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 314 MBytes 264 Mbits/sec
During this, top shows the CPU is maxed out :-
Mem: 251196K used, 2756K free, 0K shrd, 4488K buff, 220296K cached
CPU: 0% usr 51% sys 0% nic 0% idle 0% io 0% irq 47% sirq
Load average: 0.08 0.05 0.05 2/78 2399
PID PPID USER STAT VSZ %MEM %CPU COMMAND
2397 2317 root S 19100 8% 99% iperf -c daedsw
CPU: 0% usr 51% sys 0% nic 0% idle 0% io 0% irq 47% sirq
Load average: 0.08 0.05 0.05 2/78 2399
PID PPID USER STAT VSZ %MEM %CPU COMMAND
2397 2317 root S 19100 8% 99% iperf -c daedsw
So the ethernet is running at GB speeds although the CPU isn't powerful enough to run at the theoretical 112 MB/s but still achieves a pretty respectable 31MB/s.
NB The CPU has to generate the TCP headers but I only saw a marginal improvement when using UDP transfers.
David