Linux Users

cancel
Showing results for 
Search instead for 
Did you mean: 

Linux RealTime-preempt patch

Hello all,

I would like to ask if someone try to use linux kernel with Linux RealTime-preempt patch for running Labview programs and share your practice.

0 Kudos
Message 1 of 5
(5,548 Views)

Using LabVIEW with a PREEMPT_RT patched kernel won't buy you a whole lot: you won't have access to timed loop structures and, by default, the VI priorities will not map to real-time priorities since they (by default) use the normal scheduler policy, not one of the RT policies (FIFO or Round-Robin). You could wholesale bump the priority of the LabVIEW process, but then everything would be realtime.

If, instead, you are asking if it will work fine and you have other applications that require the determinism of the patchset, then yes, LabVIEW should work fine with a patched kernel.

0 Kudos
Message 2 of 5
(4,330 Views)

We use the RT_PREEMPT patch on some version of Scientific Linux that's recommended by the Linux driver page. We run real-time programs that make calls directly into the nidaqmxbase driver software, though beware that the driver software itself shouldn't be considered real-time code (e.g. it does have signficiant timing variation for some functions, though "significant" to us is dozens of microseconds).

The name of the game here is just test, test, and test some more. The driver software is closed source so there's no chance of ever calling what we do a genuine hard real-time system, but depending on what you do you can get away with claiming soft realtime (no safety critical or mission critical functionality).

0 Kudos
Message 3 of 5
(4,330 Views)

Hi Brad,

I'm curious what you mean by the comment, "You won't have access to timed loop structures." Could you elaborate?

We run a custom realtime framework that makes raw calls into the driver for raw analog and digital DAQ I/O, so we haven't really delved into the full functionality of the NI DAQ hardware or the NI LabVIEW software. I'm curious if this is something that affects what we do.

0 Kudos
Message 4 of 5
(4,330 Views)

In LabVIEW for Real Time platforms and, to a lesser extent, the Windows development platform, there are notions of having code execute within a certain timeframe and, coupled with that, the notion that you can give a priority to the thread of execution that represents the code that exists in the timed structure. The two primary examples are Timed Loops and Time Sequence structures. This functionalityis available with the LabVIEW Real Time platform on NI Linux RT controllers (for example, the cRIO 9068 and myRIO controllers) but is missing from Desktop Linux LabVIEW.

0 Kudos
Message 5 of 5
(4,330 Views)