Poor Latency and Fix for New AMD APU's

More
04 Aug 2014 10:03 - 04 Aug 2014 23:54 #49486 by Bari
There a current problem with latency on newer AMD APU's that use the newer Northern Islands and newer graphics cores.

See this wiki for a table of cores, chipset and product names.
wiki.gentoo.org/wiki/Radeon

Kernel Mode Settings (KMS) needs to be turned off or you will experience large latency spikes.

The kernel command line parameter is: radeon.modeset=0

This disables the hardware graphics drivers and the llvmpipe driver is used instead. Typical max latency might be 200-300 uS with KMS on and ~20 uS with it off using an RTAI kernel. The latency behaviour is similar with preempt_rt and KMS. The problem does not appear if the older 2.6.32 RTAI kernel is used, since KMS for the newer chipsets weren't in that older kernel.

We are trying to find out what the problem is and fix the hardware drivers. If you experience different behaviour please let us know.
Last edit: 04 Aug 2014 23:54 by Bari. Reason: typo ipipe vs llvmpipe

Please Log in or Create an account to join the conversation.

More
13 Aug 2014 20:44 #49816 by Bari
Another fix for poor latency is adding the isolcpus= kernel parameter with RTAI kernels. RTAI has a broken scheduler for the time being so this looks a little backwards, but the working setting:for a 4 core APU is: isolcpus=0,1,2

This should be used along with turning off kernel mode settings: radeon.modeset=0

I'll test the 2 core APU's soon and post an update if isolcpus=0 or if isolcpus=1 act the same or if one has more benefit than the other.

Please Log in or Create an account to join the conversation.

More
15 Aug 2014 06:42 #49880 by Bari
We did some further testing with different isolcpus= settings and the results are on the wiki
wiki.linuxcnc.org/cgi-bin/wiki.pl?The_Is...RUB2#Latency_Testing

The advice is to isolate both CPUs in the pair for a 4 core APU. Isolcpus=2,3

We also confirmed that the latency-test and the rtai kern/latency test select cpu' cores differently.

You want it to use cpu 0 if there is only cpu 0; cpu 1 if there are cpu 0 and cpu 1; and cpu 2 if there are cpu 0,1,2 or more cores.

The recommended kernel parameters are: radeon.modeset=o isolcpus=2,3

Please Log in or Create an account to join the conversation.

More
11 Sep 2014 23:31 - 12 Sep 2014 21:48 #51093 by Bari
There is a new scheduler in 3.14 RTAI. It no longer requires any isolcpus kernel parameter to be set.

See this thread for more info:
www.linuxcnc.org/index.php/english/forum...314-rtai-now-working
Last edit: 12 Sep 2014 21:48 by Bari. Reason: original link was wrong

Please Log in or Create an account to join the conversation.

Time to create page: 0.075 seconds
Powered by Kunena Forum