LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Phantom CPU load on sbRIO

I'm getting some strange behavior here on a sbRIO (9641)

(RIO 3.3.1, LV 8.6.1) 

On some VIs, even after they are done running, they still consume CPU resources.

 

One example of a VI that does this is "RT Ping Controllers" 

If I run that VI alone (no loop), I'm left with about 15% CPU usage even after the VI finishes executing.

 

I'm guessing all VIs do this to some degree, each adding just a little bit more burden. When the application I'm currently working on finishes executing the processor stays at about 60%

 

How do I go about figuring which VIs are the main contributers to this phantom load? I think it's getting in the way of my application performance


Attached is a screenshot of an execution trace from when my application is just running an empty loop (with 60% CPU load) and a screenshot of the system manager when I ran the ping VI

CLED (2016)
Download All
0 Kudos
Message 1 of 8
(4,157 Views)

Has this always been the case for your sbRIO? Or has this behavior started recently?

If it started recently, has anything changed in your system?

If not, have your tried reformatting and reinstalling the software on your sbRIO?

Tanya Visser
National Instruments
LabVIEW Group Manager
0 Kudos
Message 2 of 8
(4,112 Views)

I've never noticed it until now but I assume it's always been the case. I only noticed it because all those little one percents and two percents have coalesced into 60% CPU usage when idle

CLED (2016)
0 Kudos
Message 3 of 8
(4,104 Views)

This is an odd problem. Would you be able to post the your code so I can try to reproduce this problem?

 

Could you also check to see if there are any other programs open, such as MAX, that could be attempting to communicate with the device and perhaps increasing the CPU load?

 

I would also be a good idea to reformat the sbRIO. It doesn't take long.

Tanya Visser
National Instruments
LabVIEW Group Manager
0 Kudos
Message 4 of 8
(4,086 Views)

Sorry for the delay in replying. Reformatting the sbRIO doesn't seem to make a difference.

 

As for reproducing the problem, you just need to drop down "RT Ping Controllers" on to a new VI and run that on a sbRIO target. Even after the newly created VI runs, there's still CPU load (as seen in the second screenshot of the original post). I'm interested in hearing if you get the same behavior and what the "before" and "after" cpu load is.

CLED (2016)
0 Kudos
Message 5 of 8
(3,991 Views)

It's an interesting question. I'll duplicate the issue tomorrow, and let you know what I find.

Fred Visser -- SystemLink R&D -- National Instruments
0 Kudos
Message 6 of 8
(3,975 Views)

So, I've tried to reproduce this issue on a sbRIO-9642, and I don't observe the same behavior. I'm going to continue to try it with RIO 3.3.1 and LabVIEW 8.6, to see if that makes a difference.

When I run similar code, the processor usage settles back down to ~1.5% after the code completes.

 

Can you upgrade to a later version of the RIO driver?

Are you able to say conclusively that this phantom load is contributing to performance issues?

Fred Visser -- SystemLink R&D -- National Instruments
0 Kudos
Message 7 of 8
(3,948 Views)

Thanks for trying the code.

 

I tried it with RIO 3.5.1 and LV8.6 with the same results. I know the 9641 has a slower processor than the 9642 so that might exaggerate the problem.

 

I did some testing and I think the load might be an artifact of the RT System Manager polling. Sampling at once a second, I get the 5% before and 15% after load as depicted in the screenshot. Sampling once every 5 seconds gets me 3% before CPU load and 5% after CPU load. Still weird but I think this means the load I'm seeing is just a harmless artifact.

CLED (2016)
0 Kudos
Message 8 of 8
(3,933 Views)