You are here: Home / RTLWS 1999-2017 / RTLWS Submitted Papers / 
2024-11-21 - 16:05

Dates and Events:

OSADL Articles:

2024-10-02 12:00

Linux is now an RTOS!

PREEMPT_RT is mainline - What's next?


2023-11-12 12:00

Open Source License Obligations Checklists even better now

Import the checklists to other tools, create context diffs and merged lists


2023-03-01 12:00

Embedded Linux distributions

Results of the online "wish list"


2022-01-13 12:00

Phase #3 of OSADL project on OPC UA PubSub over TSN successfully completed

Another important milestone on the way to interoperable Open Source real-time Ethernet has been reached


2021-02-09 12:00

Open Source OPC UA PubSub over TSN project phase #3 launched

Letter of Intent with call for participation is now available



Real Time Linux Workshops

1999 - 2000 - 2001 - 2002 - 2003 - 2004 - 2005 - 2006 - 2007 - 2008 - 2009 - 2010 - 2011 - 2012 - 2013 - 2014 - 2015 - 2017

17th Real Time Linux Workshop, October 21 to 22, 2015 at the Virtual Vehicle Research Center, Graz, Austria

Announcement - Call for participation (ASCII) - Hotels - Directions - Agenda - Paper Abstracts - Presentations - Registration - Abstract Submission - Exhibitors and Sponsors - Gallery

From in-house, dedicated RTOS to Linux PREEMPT_RT; lessons learned from our successful journey

Josh Cartwright, National Instruments
Scot Salmon, National Instruments

Five years ago, the RTOS team at National Instruments had a problem. Should we invest in the porting of our existing in-house, x86-only, dedicated RTOS to our shiny new ARM boards, or are there better RTOS options available to us? We explored what was available. Very quickly, we were able to convince ourselves that Linux with the PREEMPT_RT patchset was a great candidate to meet both our functional and performance requirements.

Even with very little internal Linux expertise, we jumped simultaneously into
the world of Embedded Linux and the world of PREEMPT_RT, knowing full well we had plenty of challenges ahead of us. Some of the challenges we expected, but there were plenty of surprises, too, including the handling of low-memory conditions, dealing with irqthread priority policy, cgroup/cpuset overhead, upstream driver interrupt codepath pain, and many more.

Now, in 2015, with several successful product releases under our belt, this case study intends to document the decision process we followed in those early years, detail the many roadblocks we've hit along our way, and discuss the issues we see going forward.