CPU load is inversely proportional to the number of receivers?

Hi forum

I found the following relation between the number of active receivers and the CPU load (on web admin page):

#recv %load
0 95
1 60
2 50
3 45
4 45

The same relation can be seen when using TOP in a shell window.

Is there an idle loop inside the SW that keeps the processor on its best operating temperature? ;-)

I expected to see an increase in CPU load when more receivers are active?

Can someone enlighten me ... 



  • jksjks
    edited September 2017
    It's not that simple. The Kiwi is a very complicated realtime system. There is a careful balance of resources to minimize the cost of the device while maximizing the number of supported channels. This means there is sometimes a tradeoff between FPGA resources and Beagle cpu cycles.

    What you're seeing at first is the GPS acquisition process (very Beagle FFT intensive) being paused when the first connection occurs. And with no connections the audio data pump between FPGA and Beagle is shut off causing a big reduction in system time due to fewer SPI transfers.

    The %load number you show looks like user time only. You have to consider system (kernel) time as well. I see numbers like this:

    #recv %user %sys %idle %busy
    0 96 3 0 100
    1 60 18 20 80
    2 41 23 33 67
    3 41 22 33 67
    4 46 22 30 70

    This is about optimal. For no connections you want to spend all available cycles acquiring new GPS sats for maintaining ADC clock calibration. When there are corrections you want to have some cycles leftover for the portion of extension code that runs on the Beagle.

  • Ah - great explanation - thanks!

    Forgot the GPS sync during all receivers idle - now the picture is clear.

Sign In or Register to comment.