You are here: Home / RTLWS 1999-2017 / RTLWS Submitted Papers / 
2022-07-06 - 02:40

Dates and Events:

OSADL Articles:

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


2016-11-12 12:00

Raspberry Pi and real-time Linux

Let's have a look at the OSADL QA Farm data


2016-09-17 12:00

Preemption latency of real-time Linux systems

How to measure it – and how to fix it, if it's too high?



Real Time Linux Workshops

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

15th Real Time Linux Workshop, October 28 to 31, 2013 at the Dipartimento Tecnologie Innovative, Scuola Universitaria Professionale della Svizzera Italiana in Lugano-Manno, Switzerland

Announcement - Call for participation (ASCII)Hotels - Directions - AgendaPaper Abstracts - Presentations - Registration - Abstract Submission - Sponsors - Gallery

Investigating Execution Path Non-determinism in the Linux Kernel

Peter Okech, School Of Computing, Nairobi, Kenya
Nicholas McGuire, OpenTech EDV Research GmbH, Bullendorf, Austria
Christof Fetzer, Systems Engineering Group, Technische Universität Dresden, Germany

In Linux, a program executes either in user or kernel context. The control flow of the program is determined by its input when executing in user space. There is only a limited set of valid inputs for any program and thus in the absence of faults, the path taken by the program is highly predictable. In contrast, the input space of the kernel is very large so it is expected that for any program executing in kernel context, there could be several possible code paths available to be taken during an execution instance. We set out to investigate the level of non-determinism in the execution path of an application in the Linux kernel. In our work, we define the path as the set of kernel functions that are called by a specific system call invoked from the user space by an application. The experiments involved running a simple program over a large number of iterations and tracing its execution in kernel space using the Ftrace tool. The trace output was then transferred to a PostgreSQL database for analysis. We report the early results of our work, focusing on tracing a single system call, the open() call. The distribution of the frequency of path occurrences has several peaks representing the common execution paths matching our expectations. Further analysis shows that preemption and interrupts have an effect both on the execution time and control flow through the kernel. The result of this preliminary work points to a strong possibility of divergence in state of program replicas due to temporal and path non-determinism in the application's kernel space. This inherent diversity of OS kernel state could be useful in the protection of replicated systems against residual faults in the execution platform.