TK1 seems to still have warmup/rampup for application even when in "performace" mode

Hi,

I am developing an threaded application that is supposed to stream data from the USB 3 port (using Ettus Research B210 SDR board).

When I start the application I drop frames from the board.
Then if I restart the application I drop a few samples and then stop dropping samples.
Sometimes when quickly stopping the application and starting it up again it starts without ever dropping frames.

So my initial suspicion was to set the frequencies etc. but it did not solve the problem, although it is a bit better. In performance mode it still drops some initial frames but less than in “interactive” mode. I have even set it to “userspace” but I get the same behaviour.

My settings are reported using

echo "CPU Status"
echo "----------------"
cat /sys/devices/system/cpu/online
echo ""
echo "Scaling"
echo "---------------"
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo ""
echo "Set Frequency"
echo "--------------"
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_setspeed
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_setspeed
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_setspeed
echo ""
echo "CPU Frequencies:"
echo "----------------"
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_cur_freq
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_cur_freq
echo ""
echo "Scaling Max:"
echo "---------------"
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq
echo ""
echo "Scaling Min:"
echo "---------------"
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
CPU Status
----------------
0-3

Scaling
---------------
userspace

Set Frequency
--------------
2320500
2320500
2320500
2320500

CPU Frequencies:
----------------
2320500
2320500
2320500
2320500

Scaling Max:
---------------
2320500
2320500
2320500
2320500

Scaling Min:
---------------
2320500
2320500
2320500
2320500

Is there something that I am missing or not setting or is the ramp up expected?

PS:
Running latest L4T, headless over ssh.
I am also not making use of the GPU.
I do not care about power consumption, I want max power from the start of my application

There are a lot of clocks on a modern SOC system.

There’s a comment about EMC clock at the bottom:
http://elinux.org/Jetson/Performance

Try increasing that? You could also try increasing the GPU clock as that might affect some other clocks, although that’s a bit far fetched.

Because of ethernet use, which L4T version are you using (R21.x has an issue with this related to the Realtek driver)? If ethernet were at fault, such as congestion, would this cause any of the frame drops? In terms of threads, how many threads are running at once?

I will try this and update.

I am using the latest L4T, R21 Rev1. I am aware of the Ethernet problem, I have already reduced my Ethernet to 100baseT. With this said, I think it is unrelated since I am streaming data over the USB 3 port. And I am only using the Ethernet for the SSH connection, I will try connecting directly without Ethernet comms and see what happens.

I am running 4 threads, 3 of those should in theory be busy 100% of the time, thus I need the full performance from program start.

After changing the EMC clocks it seems like the problem is resolved. When I start the app it streams at 100% without dropping any samples.

Unrelated, I get the following errors when trying to change GPU: https://devtalk.nvidia.com/default/topic/788538/got-error-when-trying-to-maximize-the-gpu-speed-/?offset=4
But nothing discussed there works for me (I have posted there)

I realised this is not possible since I need to connect to my streamer board over USB 3 thus I can not connect my keyboard and mouse. For this I will need the “Micro B Female / Male Adaptor” which I do not have, but since I have made progress I will not try to investigate this further for now.