【经验分享】AMD Embedded R2000 处理器在极限负载下的Linux实时性能测试结果

之前使用FFT运算、C程序编译,网络通信作为负载,测试了AMD Embedded R2000 在Linux下的实时性能。

​最近使用Stress-ng的任务作为负载,再次​测试了AMD Embedded R2000 在Linux下的实时性能。Stress-ng能产生更极限的负载,比如DDR带宽使用可以达到10GBps。另外还运行了3个glxgears任务,模拟GPU操作对系统的负载。这种情况,对系统的挑战更大。

测试时,使用一个CPU作为普通CPU,运行常规任务和负载任务;其它CPU作为实时CPU,运行实时任务。在测试中,每个CPU运行一个cyclictest的线程来测量实时性能,以实时CPU的cyclictest latency数据作为实时性能测试结果,忽略普通CPU的cyclictest latency数据。​

测试18天latency

测试18天后,​实时CPU的cyclictest latency最大是14us。

cyclictest的记录如下:

r2000:/home/xilinx/cyclictest-0612b# tail -n 30 cyclictest_load.sh*-glx.3-log.txt
policy: fifo: loadavg: 18.74 18.98 19.03 20/236 7019
 
T: 0 ( 3564) P:99 I:125 C:13816897496 Min:      1 Act:    3 Avg:    2 Max:     361
T: 1 ( 3565) P:99 I:125 C:13816897493 Min:      2 Act:    5 Avg:    5 Max:      13
T: 2 ( 3566) P:99 I:125 C:13816857500 Min:      2 Act:    5 Avg:    4 Max:      14
T: 3 ( 3567) P:99 I:125 C:13816857497 Min:      4 Act:    5 Avg:    4 Max:      14

测试55天latency

测试55天后,​实时CPU的cyclictest latency最大是14us。

# cat /proc/uptime
4831964.16 14496391.50

# uptime -p
up 7 weeks, 6 days, 22 hours, 12 minutes

# tail -n 30 cyclictest_load.sh*-glx.3-log.txt

policy: fifo: loadavg: 19.40 19.25 19.21 21/236 17137

T: 0 ( 3564) P:99 I:125 C:38651161228 Min:      1 Act:    3 Avg:    2 Max:     361
T: 1 ( 3565) P:99 I:125 C:38651121226 Min:      2 Act:    5 Avg:    5 Max:      13
T: 2 ( 3566) P:99 I:125 C:38651121234 Min:      2 Act:    4 Avg:    4 Max:      14
T: 3 ( 3567) P:99 I:125 C:38651121231 Min:      4 Act:    5 Avg:    4 Max:      14

系统信息

系统信息如下:

r2000:/home/xilinx# uname -a
Linux r2000 5.0.19-rt11-yocto-preempt-rt #1 SMP PREEMPT RT Tue Jun 11 07:34:36 UTC 
2024 x86_64 x86_64 x86_64 GNU/Linux

r2000:/home/xilinx/cyclictest-0612b# ifconfig
enp1s0f3u3u1 Link encap:Ethernet  HWaddr 20:7b:d5:2c:55:04
          inet addr:10.164.16.122  Bcast:10.164.16.255  Mask:255.255.255.0
          inet6 addr: fe80::227b:d5ff:fe2c:5504/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST DYNAMIC  MTU:1500  Metric:1
          RX packets:1325288 errors:0 dropped:175485 overruns:0 frame:0
          TX packets:586889 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:131977408 (125.8 MiB)  TX bytes:532982541 (508.2 MiB)

r2000:/home/xilinx# lscpu
Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
Thread(s) per core:  1
Core(s) per socket:  4
Socket(s):           1
NUMA node(s):        1
Vendor ID:           AuthenticAMD
CPU family:          23
Model:               24
Model name:          AMD Ryzen Embedded R2544 with Radeon Graphics
Stepping:            1
CPU MHz:             3325.598
CPU max MHz:         3350.0000
CPU min MHz:         1600.0000
BogoMIPS:            6688.12
Virtualization:      AMD-V
L1d cache:           32K
L1i cache:           64K
L2 cache:            512K
L3 cache:            4096K
NUMA node0 CPU(s):   0-3
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge 
mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt 
pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid
 aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt
 aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm 
sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core
 perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall
 fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt 
xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock 
nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter 
pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca

r2000:/home/xilinx# cat /proc/cmdline
BOOT_IMAGE=/bzImage root=PARTUUID=5f0f822f-4633-4410-b63d-8854abe31035 
rw rootwait quiet console=tty0 console=ttyS0,115200n8 
rcupdate.rcu_cpu_stall_suppress=1 mce=off hpet=disable 
numa_balancing=disable igb.blacklist=no rcu_nocb_poll=1024 rootwait 
clocksource=tsc tsc=reliable art=virtallow no_ipi_broadcast=1 
nosoftlockup audit=0 nmi_watchdog=0 irqaffinity=0 isolcpus=1-15 
rcu_nocbs=1-15 nohz_full=1-15 processor.max_cstate=0 
processor_idle.max_cstate=0 console=ttyS0,115200n8 console=tty0 
rootfstype=ext4,ext3,ext2

r2000:/home/xilinx# cat /proc/uptime
1727677.04 5183530.30
r2000:/home/xilinx# uptime -p
up 2 weeks, 5 days, 23 hours, 54 minutes
r2000:/home/xilinx# uptime
 09:39:10 up 19 days, 23:54,  2 users,  load average: 18.98, 19.03, 19.05
r2000:/home/xilinx# last -x reboot

wtmp begins Mon Jul  1 00:00:06 2024

r2000:/home/xilinx# cd /home/xilinx/cyclictest*

r2000:/home/xilinx/cyclictest-0612b# ps -eLF | head -n 3 && ps -eLF | grep stress 
UID        PID  PPID   LWP  C NLWP    SZ   RSS PSR STIME TTY          TIME CMD
root         1     0     1  0    1 22676  6996   0 Jun13 ?        00:10:28 /sbin/init nosoftlockup
root         2     0     2  0    1     0     0   0 Jun13 ?        00:00:00 [kthreadd]
root      2441   851  2441  0    1  4613  5412   0 Jun13 pts/2    00:00:00
 stress-ng -t 30d --vm 2 --vm-bytes 128M
root      2448  2441  2448  4    1  4615  1664   0 Jun13 pts/2    21:33:27
 stress-ng -t 30d --vm 2 --vm-bytes 128M

r2000:/home/xilinx/cyclictest-0612b#  ps -eLF | grep glx
root      2442   851  2442  0    5 105517 81096  0 Jun13 pts/2    03:25:40 glxgears
root      2442   851  2474  4    5 105517 81096  0 Jun13 pts/2    21:33:27 glxgears
root      2442   851  2475  4    5 105517 81096  0 Jun13 pts/2    21:33:27 glxgears
root      2442   851  2476  4    5 105517 81096  0 Jun13 pts/2    21:33:27 glxgears
root      2442   851  2477  4    5 105517 81096  0 Jun13 pts/2    21:33:27 glxgears
root      2443   851  2443  0    5 105486 80488  0 Jun13 pts/2    04:06:03 glxgears
root      2443   851  2466  4    5 105486 80488  0 Jun13 pts/2    21:33:27 glxgears
root      2443   851  2467  4    5 105486 80488  0 Jun13 pts/2    21:33:27 glxgears
root      2443   851  2468  4    5 105486 80488  0 Jun13 pts/2    21:33:27 glxgears
root      2443   851  2469  4    5 105486 80488  0 Jun13 pts/2    21:33:27 glxgears
root      2444   851  2444  0    5 105514 80672  0 Jun13 pts/2    03:34:05 glxgears
root      2444   851  2470  4    5 105514 80672  0 Jun13 pts/2    21:33:27 glxgears
root      2444   851  2471  4    5 105514 80672  0 Jun13 pts/2    21:33:27 glxgears
root      2444   851  2472  4    5 105514 80672  0 Jun13 pts/2    21:33:27 glxgears
root      2444   851  2473  4    5 105514 80672  0 Jun13 pts/2    21:33:27 glxgears
Wed Jul  3 09:39:04 UTC 2024

/proc/uptime:
1727673.02 5183518.24

可以见到,AMD Embedded X86处理器拥有优秀的实时性能。

测试结果,与BIOS设置、Linux编译选型和设置、系统负载有关。请联系对应的FAE、或者hank.fu@amd.com,获取更详细的信息。

posted @ 2024-07-03 17:52  HankFu  阅读(64)  评论(1编辑  收藏  举报