LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Why is the Timed-Loop shown as a background priority thread by the Real-Time Execution Trace Toolkit?

I have a simple example running on an NI Linux Real-Time target (NI-9651). The code is just a time-loop performing a matrix inversion every iteration. 

 

I've used the execution trace toolkit to monitor the execution of the timed-loop. (Please see attached images)

 

I have 2 questions:

(1) Why is the timed loop being shown as a background priority thread (see "TimeLoop_trace.PNG"). According to the LabVIEW docs, "LabVIEW executes the timed structures at a priority level below the time-critical priority and above the high priority." And, according to the Real-Time Execution Trace Toolkit docs (see "Execution_trace_priorities.PNG") a higher priority thread should *NOT* be blue as shown in the attached trace.

 

(2) If the timed-loop has a higher priority above all threads except "Time Critical"... why is the LV_Occurrence (1492) being allowed to preempt the timed-loop "L477999708 (1815)"?

 

These questions have come up while I'm debugging a timed-loop not performing well at all in a larger application. The timed-loop is behaving as if it is a background priority. Now seeing the output of the Execution Trace Toolkit I'm seeking input from the community...

Download All
0 Kudos
Message 1 of 6
(1,416 Views)

Hi Southern_Cross,

 

That is interesting. You are correct -- a timed loop should execute at a higher priority level. Does this happen with every timed loop that you create or just specifically this one? Does this occur in every VI or just this one?

 

Have you tried manually changing the priority level? If so, does it stay at the higher priority level that you set? You can set the priority of a timed structure by right-clicking the Input node and selecting Configure Input Node, then changing the Priority value. 

 

Thanks!

Erika
Technical Support Engineer
National Instruments
0 Kudos
Message 2 of 6
(1,372 Views)

I've seen this same background priority reported on multiple VIs and at multiple hand-set priorities.

0 Kudos
Message 3 of 6
(1,366 Views)

@ErikaB wrote:

Hi Southern_Cross,

 

That is interesting. You are correct -- a timed loop should execute at a higher priority level. Does this happen with every timed loop that you create or just specifically this one? Does this occur in every VI or just this one?

 

Have you tried manually changing the priority level? If so, does it stay at the higher priority level that you set? You can set the priority of a timed structure by right-clicking the Input node and selecting Configure Input Node, then changing the Priority value. 

 

Thanks!


Not exactly, This does not change the execution priority only the relative priority between all timed loops.  What version of LabVIEW are you using?  Have you manually set a sub-vi inside the loop to a different priority?


"Should be" isn't "Is" -Jay
0 Kudos
Message 4 of 6
(1,364 Views)

Using 2015sp1. I have not tried setting a sub-VI to a different priority. I'll look at that and get back to you...

0 Kudos
Message 5 of 6
(1,358 Views)

@Southern_Cross wrote:

Using 2015sp1. I have not tried setting a sub-VI to a different priority. I'll look at that and get back to you...


I wasn't saying try it.  In fact the Help advises AGAINST doing that!  As far as I know though only 2017 correctly reports that doing so is a compiler error.


"Should be" isn't "Is" -Jay
0 Kudos
Message 6 of 6
(1,355 Views)