From 67a44f586c9a1f88d2b5ae15214ca761ddc893c7 Mon Sep 17 00:00:00 2001 From: Bryan Brattlof Date: Thu, 16 Apr 2026 17:16:50 -0500 Subject: [PATCH 1/4] feat(AM64X): Add PREEMPT_RT perf numbers Add the AM64x latency numbers for the SDK 12.0 release Signed-off-by: Bryan Brattlof --- .../linux/RT_Linux_Performance_Guide.rst | 47 +++++++++++++++++- .../rt-cpu-method-all-latency-histogram.png | Bin 7227 -> 7259 bytes 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/source/devices/AM64X/linux/RT_Linux_Performance_Guide.rst b/source/devices/AM64X/linux/RT_Linux_Performance_Guide.rst index 001241a97..fa654195a 100644 --- a/source/devices/AM64X/linux/RT_Linux_Performance_Guide.rst +++ b/source/devices/AM64X/linux/RT_Linux_Performance_Guide.rst @@ -36,7 +36,52 @@ https://e2e.ti.com/ or https://support.ti.com/ System Benchmarks ***************** -| +Stress-ng and Cyclic Test +========================= + +.. _RT-linux-performance: + +stress-ng (next-generation) will stress test a embedded platform in +various selectable ways. It was designed to exercise various physical +subsystems as well as the various operating system kernel interfaces. +stress-ng can also measure test throughput rates; this can be useful to +observe performance changes across different operating system or types +of hardware. + +Cyclictest is most commonly used for benchmarking RT systems. It is one +of the most frequently used tools for evaluating the relative +performance of real-time systems. Some performance tests which use +Cyclictest are System benchmarking, Latency debugging with tracing and +-approximating application performance. + +Test commands used for running stress-ng and cyclictest together + +.. code:: console + + stress-ng --cpu-method=all -c 4 & + cyclictest -m -Sp80 -D6h -h400 -i200 -M -q + +The following summarizes the latencies observed using the yocto based +default SDK image: + +.. note:: + + A known issue in this SDK release is affecting this benchmark. + Using OP-TEE's PRNG drivers rather than the hardware accelerated TRNG + drivers restores the context switch latencies to the values you see + here. + + More information on switching to the PRNG drivers can be found in the + Foundational Components section, here :ref:`building-optee-with-prng` + +.. csv-table:: + :header: "Latencies","CPU 0","CPU 1" + + "Minimum (usec)","5","5" + "Average (usec)","7","8" + "Maximum (usec)","69","77" + +.. image:: img/rt-cpu-method-all-latency-histogram.png LMBench ======= diff --git a/source/devices/AM64X/linux/img/rt-cpu-method-all-latency-histogram.png b/source/devices/AM64X/linux/img/rt-cpu-method-all-latency-histogram.png index 9e4ec1a16327a4778f2abca5958f83c4d1ae8822..b2e18b191d8973eb562f831128b2f85846a3be8a 100644 GIT binary patch delta 6943 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 delta 6910 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 From 70ee2ce877cbfbc373d4af855a4d096a0f53340d Mon Sep 17 00:00:00 2001 From: Bryan Brattlof Date: Fri, 17 Apr 2026 11:59:41 -0500 Subject: [PATCH 2/4] feat(AM62PX): Add PREEMPT_RT perf numbers Add the AM62Px latency numbers for the SDK 12.0 release Signed-off-by: Bryan Brattlof --- .../linux/RT_Linux_Performance_Guide.rst | 47 +++++++++++++++++- .../rt-cpu-method-all-latency-histogram.png | Bin 7334 -> 7404 bytes 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/source/devices/AM62PX/linux/RT_Linux_Performance_Guide.rst b/source/devices/AM62PX/linux/RT_Linux_Performance_Guide.rst index 60b522d39..c22cce316 100644 --- a/source/devices/AM62PX/linux/RT_Linux_Performance_Guide.rst +++ b/source/devices/AM62PX/linux/RT_Linux_Performance_Guide.rst @@ -36,4 +36,49 @@ https://e2e.ti.com/ or https://support.ti.com/ System Benchmarks ***************** -| +Stress-ng and Cyclic Test + +.. _RT-linux-performance: + +stress-ng (next-generation) will stress test a embedded platform in various selectable ways. +It was designed to exercise various physical subsystems as well as the various +operating system kernel interfaces. stress-ng can also measure test throughput rates; +this can be useful to observe performance changes across different operating system or types of hardware. + +Cyclictest is most commonly used for benchmarking RT systems. +It is one of the most frequently used tools for evaluating the relative performance of real-time systems. +Some performance tests which use Cyclictest are System benchmarking, Latency debugging with tracing and +approximating application performance. + +Test commands used for running stress-ng and cyclictest together + +.. code:: console + + stress-ng --cpu-method=all -c 4 & + cyclictest -m -Sp80 -D6h -h400 -i200 -M -q + +The following summarizes the latencies observed using the yocto based +default SDK image + +.. note:: + + Using the OP-TEE TRNG driver can impact this benchmark's performance due to + frequent context switching between Normal World (Linux) and Secure World (OP-TEE), + that occurs when the kernel's hardware random number generator interface + (hwrng) requests entropy from the secure TRNG to replenish the Linux entropy + pool. + + The Linux TRNG driver can mitigate these latency spikes. This involves + enabling the Pseudo RNG driver in OP-TEE as documented in the Foundational + Components section: :ref:`building-optee-with-prng`, and enabling the RNG + node in the Linux kernel device tree. This way the HW TRNG is accessed from + the kernel itself. + +.. csv-table:: + :header: "Latencies","CPU 0","CPU 1","CPU 2","CPU 3" + + "Minimum (usec)","4","4","4","4" + "Average (usec)","5","5","5","5" + "Maximum (usec)","39","42","44","47" + +.. image:: img/rt-cpu-method-all-latency-histogram.png diff --git a/source/devices/AM62PX/linux/img/rt-cpu-method-all-latency-histogram.png b/source/devices/AM62PX/linux/img/rt-cpu-method-all-latency-histogram.png index 1fb208be931eecd5d65ed0b96f09e8d96df255fd..2797868354265be93c2045c1f5c6985c5c22e311 100644 GIT binary patch delta 7039 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 Zz=ZU?t(|(UKjFlpe);;PGJ<)~{{h2DQAPj& From 39857e3194fdc254389d5961e137dc388f4b872c Mon Sep 17 00:00:00 2001 From: Bryan Brattlof Date: Fri, 17 Apr 2026 12:48:06 -0500 Subject: [PATCH 3/4] feat(AM62AX): Add PREEMPT_RT perf numbers Add the AM62Ax latency numbers for the SDK 12.0 release Signed-off-by: Bryan Brattlof --- .../linux/RT_Linux_Performance_Guide.rst | 6 +++--- .../rt-cpu-method-all-latency-histogram.png | Bin 7125 -> 7364 bytes 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst b/source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst index 798f6c233..1bffcca3b 100644 --- a/source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst +++ b/source/devices/AM62AX/linux/RT_Linux_Performance_Guide.rst @@ -77,8 +77,8 @@ default SDK image: .. csv-table:: :header: "Latencies","CPU 0","CPU 1","CPU 2","CPU 3" - "Minimum (us)","5","5","5","5" - "Average (us)","6","6","6","6" - "Maximum (us)","31","29","30","30" + "Minimum (us)","4","4","4","5" + "Average (us)","5","5","5","5" + "Maximum (us)","35","45","34","38" .. image:: img/rt-cpu-method-all-latency-histogram.png diff --git a/source/devices/AM62AX/linux/img/rt-cpu-method-all-latency-histogram.png b/source/devices/AM62AX/linux/img/rt-cpu-method-all-latency-histogram.png index 35c25420fe37b35a152871232d7efef22bdf849a..09fa14da5a1b4fcdeeebf70e51f247f650ffc9b6 100644 GIT binary patch delta 7043 zcmZvAc|27A7x&yT!wh1KHA`kJkz~u>Vl3ISD~0S!S&Qu4G4@1+vXi2+lzoX9Bx{xy zDcc~Vuk2*^-0Ay!J-^@U^*r;>%)R$~KA&^m=Y8Ji-1(yLPN^IOKpsgQ4OO#%?B6*I znI*;8sBbg27mw2=jD5Or#4<))!weaT0d@zIN}iU1W_|RM;r5KM|Np1{-gNfY+9~B? zljcg3W~8wizmvD4ZqKYu4HLV7l8xFzM1F|i4WdexBY${$Du~lV`>rCGWIQwMEMR3l=9`U07&^P6+ z1CtCRyT&@`!=Wn{^K{S=I02gJ79tem$tt9VX{muTJ5qBoqWdpf9Kg22x~8{v%}N!` zl=YdJ-CmiPpDe3VpXYY()CT@o?&*$IdXc^;%z4#&lDk?VEqlYf!b&DElir|osf;mB zQmBmq@2;O!dW=2yTBMPLV2*~>{`yZA@rACOn2Mlh|1|pOpU4(kD)R!1`!mDG4sSKQ z68vnES3lZYHG1*tY;!<=nEYmyaW*RJ(GoWPT_gRn-Wk)D1~n&7b78&eGJ(3Ov>&Rj zDW%M_1N$zf!}5F=`&&6emsk+|r&pz}z{d`oqT-efuzw1<licTRZQ=keqXpt%cQ2 zU)FAVh?-s(pMA9A6d79#Mp3kGoqq6TS)Ri-z=tK_s)NxtFXVRZyvQ%}=WVCm^7V#e z?zkLQec0-gYyUn`)3C)72_HMpSZiXP`gv~vv>KiH_ZYOdNzeYoxJ1@TGH!@TB-DwoMg?ztU! zb_%;*T($^VW7~o#z{s8()tXScA#y*y+We+O8hd_uo{vK^D`k$RFE8X3>02$m^DBDi zoGYz8wWK-cXzx8`^9Sr{L`(ahLIz6bN%>WNX5`unSIH4v^o{_fnWfpQ3^Rk|<# z)G2X65*^KH8`@d^V>|8#XP$m4sAc~vA$h0dnL$?K0P57Q1T4%}^N%qt>ALHx$72lO zO%r!j3&BWxr2zFjH*XqS?bRcqUs}Mei6Q&@mw6KF2J75L?b_&$%uBxGl=m%}wF} zm%ERnW4Eoq4xV|v){)aveO(F;IS7m|2{}JcxG4wTN*>|a6z~Y0Ejz%`3jO5m&l>9{5D(8B zUasDXs&o2~gz(aw_fS*=PHt(w)wQ$awcKQJhyNBo?ep49yJh7OM0y{N+Hamcxx z5R_Kiyf&PPpuy4`>3-U@Mz2iNZI^{k#mj-<-49$D_4Llkuxn<>7Ez%!H)D|4g0a0o zn*KmP=zn2rayqX_8py;RhnIE>Z4B*%*_O0E94ACL{Ho@pP3ZnrXW8xoNOMCs<7~9_|!hh3K>BcyJEn#>LJv>7oHL@y*D>8dyh#u(N|SO zQ02;bMGh5Njje@<^m)njOO~Ok#4kIte5WU}em_Jv&-=qQ6zVzniyX$m zMxBd$BpCAnav8nC2`_#BH=g0~_QA~A*sZb*8yzY(&XuO*)6+_)40dk# zmR`&Ll=DrMh@1BI7k}x07< zf)Rl#h6AKxY6dlcN0xZ66}Y}~EzLo)B;jpu(sbQ&Vzt0eC?-L|0`ean%>EqvDQQ)9 zMj#PTC9b!vd7JKyhQneaga{YdIp7F?HEjN?u-;nW0}BLB2v8i@iKzx!bBvmTqaI>-fU|FStRl(%CSyl)~;4zg5=fN4dGlNWDz zKWe=4lI=TDU0o8mg9A)-Q0~=UlIA76RUHOtd5`Jx81+b^26RH;E*fH zrh^>`=Vc=0B`uV+OHniT-;F0B-OwUdpNw4RKd@19GlDarZaxml7~5RdyaInmpr8iF zYAU?~dm~|5PmIC8b%S{i%ZA@MJ_SlL{w>4fT-;;jqpKMMlARc__kFS9jh) zUOYM6Ri7A!=;>9 z)NjL=pVP_N(Q|Xdk;Ci#ams$E#S1hd{riPo+$e9{J=CBQBJn)U>w*8hv6UOn>JmOm zsi6X%ilr=KMuKS#vdhM3V}=Pt8e?5zmAdWnamCw@ym=S_kV)$lAY<7pb9ME-3%ahg z-$p6|Mu(fU@s_Cgzh?Kb-ipv+=MaDQwybNN3L!Kxo*-K4kyHOQs=dp@`-tcT9MYlv z3|}4}IxNf{vC!S@8SzHUfa7ik6U2iWR)Ihr^ef~x9k9i$LsZM;beUzVzeRJXMjThaMMM7;E?z6^ zV-8n?RN%JRjG>-I0fgMssc_db1krM@rQBmaY3Ary&lQx>cjA%}Bg$J5^?JIkyC{kX z0lZkc;ufr-PE-d89Jb%y+O-*=5F;w72C-)Vh79|^4&EjQN-%yWQVc|!r>mbQ>7-U_ zKuSU9#A~$r+MtsJ)5>26|2b*XM8ClIamzj0=8|KG1^5C~SL_q>R@!9pplJpNCFkL!g$5 zD#Cw$QN$reE_fJr$H3@_TM`zjG7fk=H8_+9S?5gf{l^Zc32fmx>T8_)p}@4Y)p8PT zK@F^B?$wuURpMK94hkoyuquRl`a_$i^qLCw{-UO9Q6>U)g8Cc0O_lE%Fp?3CV9Z}7 zG6l^BTHV~5VA7b83ms#!M(63YsBBT?qRT$&4&l^aFk~ceCf4jP=p>S+i@c@h+C3_mMm}a_*CD zhAX#Z;A|OFI=K;VFM)F?fC({m8Fk7!bKchFvMk=bg}(KEX(C?fbf4j)MWvB%4vFC~ zo1am>20O=x0&^oc-KMb^_+r-Z^B)epMZwg`qsN`=@afTM7rg>#O4*C9)~X)lvs>*L zuUJ$omq5q43K7* zrG@h{PfO{4;|nr{Ye+ux;^v_ns|HrZp1FMoS>b>m(>0>aIDe8IuH3&1zJCYmxr@9( zXi<6#yKk&GwvjWAK-i9T`PSDcfpW_`=kR03)wBkWi5S}fNBZ(|b`FS%-#ID#wK~5u z&I4drt5yOYPv+cO_?{Qt`OA9*N z5JlnVW&!H(;UZH)`RFOb2||seYcW#0|ENyCN7CyUB-e$0-TpszJgl!lbl0#0oOeB} zEmJt4ZG<~I0iXR^&0!&AtU$S8voKk`r7T&F2Pj}#;=Bio`mymvM=8uw(9Irzs`NnZ zoAA-NqiG7xIccU&t`b5Or6!`04!&rY`fCMgn&>PjIg&h6_r;R6(Jdz&wih}5D(#o_ z_}^QO)J~Cv45*~PxHbBw)>(^aWcvW)*R8NO^U3ejz~<<$Qk~1%9R%AJs59M?%i)Sy zUA+{74R*UgZAlV0-8E%($rSBsAc*U&Z@O@QPfI*xkBj6g;j_@v&@yocsz;%)1gv*70{I$;`}Iz`nw-$U`jJZ z;qSt!T0k9oT*hRRAkBQbePT!mVvFcfQMg7lY*pf!WbR2qYIu(EnCZj$E}xYiYEN22 zxE9T13FFsFVaylkUYC7ip`6E{fGwmd@#@#e#b8J&bm#|}5NgEG)sFC=p&(T+P64~h z5cc#vZzvg`uKlJOL2@!3e@^i40;;s!gE>$wAx0P#Q-YQ8=z-RW%<2}~gd1Ej)?$04 zIZ2D2U_|-~@8TJmPClTyT+b;cq=nufkjZa&v7c^(iY&`BtdUjs!iZ0KRVTHTcX8%t zf)Y&a0odFKb!v-sb=Ta85#xHB)F05F8X`!b1^l!e;O8YEI!)xK5__s)&vnm25^E!g zDnIu^*fxjHB;y-zxGM2L^%d!#G^p?%Bq1&Q{7aw8L(0uB64aVD92p6Zgr6gg(Ux98 z9$g0tP>bkWk``f10pSs1>8eDKZ!JIE6;*Bs)pVK_K(7_(#)OFV^!9S3H|maBc-|zp z2Y;9Pc`4t#wP5AYJthaE-}Q^xUPNd@XT~p4m(Yh=#FAi6w+*fNk+CofZ&7(Uw(W zLIH`0|C!qduoOwe2+sp7E&|p_0}0hj0dm| zYmF4wP8$<+Y}m>=7&wx;p9V9g^#dU9Kc>TciYc6kkzUGjWKm?t`&!q1iXJ(K3Y{}{_*Ov0E_@4uLc z^|@JJcuE31DU9YBwIsxqJ$sYX5FaY$GfT?drAX{H7#=c(;@8!*PrVcBfA?bvZ}e$J z&(um^4STV+ipXXu-7(;N;@!pMhQu>-3Qy)Q*2jmA-Y)t)pTu)g81Z=i;|e_6;p4+{cr{1TvGU3G zj6M%A`L>vk+(9fu;ONiiGGEI&-T0djR!5l&IC$2-XImKi1xq#DsA{|3fblEM9{VuCfsq~duQm}yxaUUV_+w@ zZ&XtyxnX+t5mjjsK$)H93*1!XG9)DXawM;hXU>+a_^?n`Nf9lDzGYp zQ)r^%w|*bbN5!;vH6!dYhUaB;Cpe#aeNsB=0RGDy>M!2Pv&_Z2%1qC+i=W>iZ zu_}$>Oeyuj-^Z5j;LMLU7YX7FHQRRqXOW86&)S7dD(hu3d~BR6f3Xc!Sa94Lmp)bI zi&bD)(RTW@VAgv7A!tQ^)Ow3w+S=y7C@&Mg7gD=+zkrxu4&8XhU> zsI6}Lbu_?zw_XJLJtY&SPe}B4>9^5s@^?QbYJwr3#LRuR3?#~x36ZrU zh1|Wbt9Qj`=d1eu%pDr~+;N&b3#XlV$gN^2duFTvqG+Q}WW`F)N+UGlZf7TEi3j zU908hLjgP5K==jp}Vn^w=7b7BoM(i@B5691g}?d4$zR_%?PwOCo| zTOkyDtRyl=l=OfNZ6t*3a#SzRuW8d8Y!AC@oPiQR6N#f5d0EU;c@AA%Ak`5#;wB`n*nD` z(Jo3ZcWIvE_Es(SQ5L8U%E~sbI?lj;an*4KZiFhK_($ldEWW+;qV~YyYkb8~N20hD z)_vi+%sF~Nl2ND5544oFKytKd+3(~#6H-R6EoMT}Zk5v}iXcQij1QL-*M;k+?K&7e z@&4m!%)xaxM?F%~EsgBIGx!GyDRkXZNfOR>!#*N;6udWv6{?WWODT z^-oXMlX*GLxFS(6cFksAW~|oKME1E#a=(3NNGfQ~a_tG*WRup@lec4zD|K0)`eI}Sy3pmvPDL&?A7PYB!rBRY(hq4OGY@^vI^NU zGE!#7?{oG2{eJ%NxO?6E{d&JXuh;YWe7)YEkC#Ve$^qy_cAS=)@-3g2>*>_>IYsnW z>*lQ#6=>Lf3;K^VwqU~8?6-Qbtlh&6UH@!c`;RRLWeVu?w@?;<(Iz*c#I^R>y_;|D z-~3T<;ZxJx~4Ts>twLYeLk;2WLKtYlFR#&VS&MlvTWYY zM$uFk{%J4d!xUwYw|nX9ldlbh{Jg_!H~4gGk&;bv&$AacpLsDoxm;{|{e~j`*nWu? zn~3*rKh|77pL*l98gNegWMm?QFzQ72>r2-%^P0NhriOlH$4f}`y9^)G{#q7JOKH_V zMK>OG*g;=OYgfT#i?Jxz`+PriPf$v@zaNw|PhVn>F1 zE%J`4@O8N0RN$TX4B!=2jn9!qX7PR~LuUM^JYiYKyXp+*Z^cQ94ZhTn%uZ$twTi9J2YUYS$sODAk{vi+b$L4GADingJsPLT?D}>QusU!{ zk2ED;E)bX(eGHUAXvdWV>R(_FcW>=V1ZtFM%%<)yM{+uheRo$NI&Q45BdZ_ToJ2~S zT<=!A+-1$aWzuxW;x9q`s^I#ERp%8#iP*wAd(D_1euLjgk!n?m{jg!DM(29*s1bzp zr}ug(mZI4|!KgQ%5`tIVo!W*&6vLRf@0DO6x4YzlW{Uob(I+?0n}}LNxdkeNg&P;g z4DS6oG7B7*Xb!WjnJ7{|&TE#lK>D4<@-y^2D$5vDSQX36y8W*-E-B`c3s$lnLf2AZ@n6qNfmT)E)( zm8sV>blo5$yR59Sh8wP$-I66Id4=A}C-M}){978o+_l`uqaoUCr!g$Bye6{Q&7MSD z&`Z-KOmOORXMr2VosH=!@DI=EKP`de{IdnD&>x*tUkVj}3#sx_osNcN1V&EZT zG`_;0su9lK3qI8&CLp1~)cQNsXbCEXn2b4=&nb{WxQv6ruJpGm1t2xxazLadD%GmI zZM|rfX4L!lTDsPkoVJ4fb{xT~vummRSwp!hAyX(Fy=7@8*W9_RLs-MYVGGJNAsAFS zXTgTC`5|E$erbM~Q>1eKlkOp7CIMphU^RyC)pP(i41VVN)LS?lCF~Ab!dYe{(czG^ zzrQkDmE~9gsB$*Yh0Q)Y{sakg=`55>8mHWPtdcK}!nnwKcGACwD!cOAThdOx#p3kR z8NA=<_N+P(AT2Q$z26iBL6mP^VZbgyeS>^)1FR^_xtH~}DFwV{$^@(K6uG2|?ja4+ z1UpgTBWmcS?*ZPT-tCn)LNa=yqWrA0`^i8XkS>?Rdf(db$R7pDMnS7*)8$6nz=}&yukM#P7R>hcQ@~vMTL7; zE01$xh01KGeRwSJrWvY)Uf=ncoge%Mb7V02Xcj8yZfEX~wII3C&z}b}&?8kl`O$zk zyCVGzEqpwZ!CO?}O98LtT#V;=3;bwmGUOCTSZ8hHEIwx;k!s~7MV~4A1oZJRYr?1H z!#HO+bp~4~W*%`Wb{fLm_@MJJCTwMI4xvh*_Wd4{$HfWXV-{zXwsQWq9>cetUZ7I% z+4UG=*3!=@LJmHGzxNx5jBpQr04LQ_0!C?{|6#RdXaF7(TC-uS9b-<`M>^f-dkkN^ z;*5Bhj&C{zMi>9jS${cNnSsgxtjezq<4V~Afu|u5<<^xAtErP36tIWIzRR>`c3ss<1!Qz;41RzrggLOoMi&Pk`-ZO2}pkg`4 z5RTq#lG{J0;x1V+_E3Ei9KWJWe0)1Mw`cT7g%E&6;Vq20+?-BjpF&P4P_dNfpr*Ht zQ5bm&EkgA{$pq4)41?t@r5xyy3lGSqMM1ZNB&l=M)_qw)-wM~&R0&ZahVPrAV0L7^ zz?lyD1}E$drHOzR^)}jw;`SFR2~xC%bO2uP%#azXUS@?y{_!RV!ls-OKKR+g z1Q=_rs!v|N0tVsQR#pFj2iF&i@Bw^*QIT2GDLOcjtpXzcELc3ud88wgmdNf${aVbz z=Yshfe?v6nr(h_V9n|7gxDf3a8Y(%L3d#F^DDUB0YlMoW7;CFa>QPL7>>LJR)3+q# z;!8G|V0Is+q4Bo!3E|G^oCZ@D;6%dRiAv5eXHQac>OH!=J26;YK@gT=A;Rt)9?G^%Nha^?| zUhsDw{8d|E0J%V(NBepQ317D0!Kr&p!fmZ3ki=(mMf8*ykH6S}UzwYj$ql1kcCf9$^ZsJx0W^aN@JRCFqn0oEXsuk9gu} z5nJORH*T~pL`qJD=;!b^r4tmPkT1%9^mDs4We${ZB4$YKUHX$2H7Or@c?zg555+(y z%NqooNE58_F2PHA=pHwo1tZI`5OeEFZVCcC`F%-INffF z;IjCCM*d^*u4!_PP}Ou%jTz7s zEO-&cV`))X~&2LvG__$$qkad&t zBKr;)2oykt8!y?-HNQi8j!2dxU+A34*3b_qm@rF4W-g%G03JcDH6qX2V^5<8$y zwesPmqHX81WXma~34Ib5A~X6C7An&^qnB^}Tk6g*xAeoUQ4)woTBY>PA_YcqgeYte zDCgz@%sP=AFO5kh8*TM4SePMU4WO&4Ucz3bxlU3leP{Qx|JmtoBOIeVz7cNUZjU>Q zL^{v;v@oOac7i{Hqf=f&M%vf3;zB~MZb&m@8|la&Z=DNG5I_I0yoUdQW*8VtY%r5W ze-g*#@rij0Ug(_l*7ERPL=*F6pSS!af739Z_+|Hl`H5iDapzhYt$s;e2&9YbE0M0cK zIecpn6nO5B_g>V?{Z=6yExT~xr;$ft5M=(T0FM%$$bO~*qExSx$%J)k&f=lmYRj=g z;Q{=zbY_uNyS4>EZ>BjGu|Mn3Ql>OO!I4}Xf>|m23UhG6q40Pyba@4n2q-OB+(3de z>ZIDQ;i3hnHd~7Djic|(s-$K_h3gYUw>zjh7@ocBMKvx zcM-br9SS_cyt!-MWW|MP$OU40rJ-M|@I^(O7eV)>{%rxRyr77ZH1gqFic(H~cPPxR zvt2nNX&ZQY^HJbmj(_Ewc0YfAt%FqOM1;?U`)i}Aw+O~;@)9H8p=BRkbxGCyDFl7h z0e;j%L^wPkQ>Dusif_8IqCGkKF;$JAgqdm9^XdWs&o4c>5eV}q6R9L*1WTawH@H`& zdJ=0(o=AgQ>(oxU3;xLdMysvL6x*zy73!R)uCqrni9RHWF%c%}65KyueZPd%>c;t| z*Pq>($UAbHG;-_x#xp{JL31$1s}>pFY?0T|EE@`uGIeeu|5#ZYx6;FV&aNPqm2~M>h{LL=hm~W`IZO%Zj zK31r25<5}gRrv?@51A3zVl@8s9)#F|;pI2b)1w32N+vW^aR$lwf+chR7@4uG&x6vt z(P01#zEFjtb*?@`D-$|MRBf{6!oWCQ^ub^JrM-$jz0Ks|r&N-9*xxC?P*oEd4l?xx z@)isRzoD8MQ4P!8pjMsJBy6ELm@6QK4YqNz7;vDI70o?{nn|}{W@`1kGz~jm*OOU; ztv}%&tAcK#fDIPs70|BsjtRg{TB|R}nQu?k%cAf)nm1ImTcu)2V&F$_K%XB32T``_ zul8J)4y(>%YoMS*_QV!y!zwQb_G0ZFO|76xV#^s4Cd?T!-8;RnsdyAZZtx=A{#FAs zGbPQ_85hDpS`dIgdno%5Z$k|yqCVBnq|9Z<@FE3(Q9F19=U4T`5IJ5B4NwNYP;O}) z+3@@6q@pCE|H(!05M1dZs!NTAW^`c=L5afaIsOc;dZbQBA-1%fB{l!KU%GfP68$%6 zm*ElmL_(|+&a)u*7qR6V*Ip_UcFDQ}yqWiUxU=)eKH=c_+cqvfTb}1<1z;R;ZV$Rn zTPkw(K^`HcvDtjo=sa?%QlzZ(Pf*DphnbRH`od#qWk@WKO`GwOp5b;$RKnUpN2fT~ zYH1y(tg+35f~*J`6NUPEg%h#1$MS8amICy$V8#zp)%xHp^dtm= zTquGh7BorwLeT&UuO@~bSPolp`%A5XR4YSYpn6_8f&kG7l|^ZJ5Ba>DX9pp{7!2{; z(Y%AfDv42+KgyJSAl7X8cXPSdcemNUjEXhqLR|Cpc8=*LsqV7N*+U;jDrgLGPd*Yn zbkP|uh;8QiPYx0`>9LHm9DpSs?pDw|6r7MjOwaq`8kEl@kw5ET=_RXA-{xtaC4lPD zq)8Z0w^eJ>Akj90M2l%&oJ*|qIT8pMpc}kMaS-~B*k+xDnGzCfzYY_${^>j2c|DP}8riT!lQ+nXnNDQ1B5B^p9kWG&B5sdr9yOS#dib5q==ItFpx zVk;!~ugdS>2q<>>vwvL$EXAUsG@4J@C0PE-J2;y;1`Kc>*unULF za*$$kfXO=t^ECg&F;Ic+@b4pf>q@+8k8ZD#Zt-E2=fD8}hX0`y$nKMVF5N1i*;ts+@f2G51H zgpPGHm*|qf<)NY~PHs@4DmwKfX0ALj!O481U(W|BXg8iG2W+$4rOyi+Q>gS<8%VvTI{FXM9yH-{>=VCJIO zGc%HcqLX8Uu&@S2y9Zy~w<}tKyzSNVqKz=|GbhhmU+mr9coAh_ki19-mj&IwMdPao zF3pDu35-ofY*)k5R?6!2cT*c*<0t$Z_gb8>>t!q9)HhAIlnL(Irp#x`zCO9%Z16OJ zNzB88=RIC7UQpa$%feva^w&4RM)GbSy~O+)Ac*Wds3qDoTmqp4+V=UJYN_@t}CIMY?n)#5i>>mS+b@Ntup zhwmxJt>(4V{8fr^Wk9RCj*(x+x2icc3D~Ka+{yH5r)Q;#qf%-`4k%VQehv(SxX}Z%Wu}Xp+xM3mcDft; z;I((H#VLvlYlQNBt4jTx`_<)A(3`Kxn4h!)xrT)24~T+ey>nSTH^eR2q^AYgqJlsd zO?b9Iwu4WLuG|uKS??@A+Z*JGuBmO;>A`)5QU3aB+(LAjpU`^CQQ2OgNTgqrYUu}N zKHxvVZ`-9=b#I4pqb1V9h9&7f1%NM%qSj56V#|C~OZ6{Z`8B&6*euJ7+TvFxXpc)5 z?ke0q|9Zd3G12&3^Sf7373H3x;#hn1=4R1XXV~QU^KM?-ew!md$xohr8tq1#mF`Yn zX-0*y2ggD}yB~G8irehmyzbH!MKXH>VXW6ruaTMTi++@R$G9dMrR{EZeY3Kbzq#D$ zeDdQqm-RuvZxRDcVls8=&NFuE1iz9`mg?P$4|(Uq+2mUfc&jJBObJ>6gOfu=E6eqB zDU+{X&&%8RCrqEe$!Yn*b);ZjdXOg{n)Yz0hgZ&^wer!DsF>qiPj2@apAuA zeRf4kU-dq`d2p7dN8@;m(Q`$Z*Sml4wTZlS2h;DY^nc*?XgP&i&aWL#*&OSVELvBu KtCgx)1^*8b2NGZa From 5afad4e6d0c07b6a868d4ec456ea111ead50a6d4 Mon Sep 17 00:00:00 2001 From: Bryan Brattlof Date: Wed, 22 Apr 2026 11:13:53 -0500 Subject: [PATCH 4/4] feat(AM62LX): Add PREEMPT_RT perf numbers Add the AM62Lx latency numbers for the SDK 12.0 release Signed-off-by: Bryan Brattlof --- .../linux/RT_Linux_Performance_Guide.rst | 47 +++++++++++++++++- .../rt-cpu-method-all-latency-histogram.png | Bin 7198 -> 7188 bytes 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst b/source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst index 5f8a17a88..90d2f3884 100644 --- a/source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst +++ b/source/devices/AM62LX/linux/RT_Linux_Performance_Guide.rst @@ -36,4 +36,49 @@ https://e2e.ti.com/ or https://support.ti.com/ System Benchmarks ***************** -| +Stress-ng and Cyclic Test +========================= + +.. _RT-linux-performance: + +stress-ng (next-generation) will stress test a embedded platform in +various selectable ways. It was designed to exercise various physical +subsystems as well as the various operating system kernel interfaces. +stress-ng can also measure test throughput rates; this can be useful to +observe performance changes across different operating system or types +of hardware. + +Cyclictest is most commonly used for benchmarking RT systems. It is one +of the most frequently used tools for evaluating the relative +performance of real-time systems. Some performance tests which use +Cyclictest are System benchmarking, Latency debugging with tracing and +-approximating application performance. + +Test commands used for running stress-ng and cyclictest together + +.. code:: console + + stress-ng --cpu-method=all -c 4 & + cyclictest -m -Sp80 -D6h -h400 -i200 -M -q + +The following summarizes the latencies observed using the yocto based +default SDK image: + +.. note:: + + A known issue in this SDK release is affecting this benchmark. + Using OP-TEE's PRNG drivers rather than the hardware accelerated TRNG + drivers restores the context switch latencies to the values you see + here. + + More information on switching to the PRNG drivers can be found in the + Foundational Components section, here :ref:`building-optee-with-prng` + +.. csv-table:: + :header: "Latencies","CPU 0","CPU 1" + + "Minimum (usec)","4","4" + "Average (usec)","7","6" + "Maximum (usec)","68","72" + +.. image:: img/rt-cpu-method-all-latency-histogram.png diff --git a/source/devices/AM62LX/linux/img/rt-cpu-method-all-latency-histogram.png b/source/devices/AM62LX/linux/img/rt-cpu-method-all-latency-histogram.png index 682ff7a06059a7ed62542aea5774fe54c4c192fb..100aa3c9f1b463688de2b9251b9eceb073b6b903 100644 GIT binary patch delta 6846 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 X_8$8lxbJlIg^s44Mj?%wP4NE!FLx~{ delta 6856 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