Foundational

The Preempt_RT patch set is part of the LNG Foundational work, details may be found at LNG/Engineering/Foundational.

For some background and more information on the Linux Preempt_RT patch, see: Linux-Real-Time.pdf

PREEMPT_RT

PREEMPT_RT is a set of maintained kernel patches. Historically, ARM platform support has ‘bit-rotted’ over time due to there being a lack of ongoing testing and maintenance. We'd like to take on core engineering effort and to pull PREEMPT_RT into a continuous integration loop. As such, this project should work directly within the upstream project, providing functionality, fixes, testing and documentation.

Initial scope

An initial effort will be made to bring the 3.8 rt https://www.kernel.org/pub/linux/kernel/projects/rt/3.8/ and apply it to the Linaro 13.02 branch. https://releases.linaro.org/13.02/ targeted at the A15 Arndale boards.

Test cases will be added along with the kernel patches to LAVA. Initially the test cases will reuse existing suites listed at the rt main page, https://rt.wiki.kernel.org/index.php/Main_Page

Use cases

From Kim Phillips: Base station application use case rationale for PREEMPT_RT:

1. The 3GPP LTE standard specifies a Transmission Time Interval (TTI) of 1 ms [1]. That means every 1ms, the core has to deliver user data to the L1 modem for transmission. Hard vs. soft-RT split details from [4]:

Hard-RT - Scheduler, MAC and RLC components, with deadline driven execution times. Optionally, the uplink MAC/RLC components can be executed in a separate thread that doesn't have a strict deadline.

Soft-RT – PDCP, GTP, UDP components, with throughput/performance requires but no execution deadline.

2. the stock kernel has a worst case latency of "single digit milliseconds, although some device drivers can have interrupt handlers that will introduce latency much worse than that. If a real-time Linux application requires latencies smaller than single-digit milliseconds, use of the CONFIG_PREEMPT_RT patch is highly recommended" [2].

3. CONFIG_PREEMPT alone (i.e., non-RT) does not help achieve low usec worst-case latencies under loaded conditions [3].

These kind of latencies > 1000 usec, may be acceptable for systems where the sampling interval is ~5-10 ms, like voice or video; for base-band processing or industrial applications, the sampling interval is ~1 ms, and required worst-case latency is < 50 usec.

LNG/Engineering/PreemptRT (last modified 2014-05-14 17:11:26)