Real-time patchset for the CIP Kernel

By March 8, 2018Blog

By Daniel Wagner, CIP member and kernel maintainer and Embedded Linux Developer at Siemens AG

CIP aims to establish a “base layer” of industrial-grade tooling using the Linux kernel and other open source projects. This base layer will be available for use by developers creating software building blocks that meet safety, security, reliability and other requirements that are critical to industrial and civil infrastructure projects.

As part of this mission, CIP provides super long term support (SLTS) for the kernel. This is an important base and the CIP kernel maintainers, like myself and Ben Hutchings, are working within various environments in order to meet Industrial Grade requirements. As we’re working on the SLTS, we realized that it was missing the real-time aspect of the operation system.

While the Linux Foundation’s Real-Time Linux collaborative project is working on getting the final features from the RPEEMPT_RT patchset into mainline kernel, there is no direct support a -rt flavor for the CIP kernel. There are stable real-time patches for 3.2, 3.10, 3.18, 4.1, 4.4 and 4.9. They are based on top of the LTS trees maintained by Greg Kroah-Hartman, Sasha Levin and Ben Hutchings.

The use cases CIP project is targeting have a life cycle of for more than 10 years. In theory, this is the time in which products shipped with the CIP kernel will be under maintenance. However, identifying and backporting relevant fixes becomes increasingly difficult as upstream kernel development diverges further from a stable branch. Any given SLTS branch is unlikely to be maintainable for more than 10-20 years.

Since the first CIP kernel is also 4.4 based, maintaining a variation of the 4.4-rt stable patchset is possible without too much overhead. The CIP real-time patchset will be follow the 4.4 stable-rt patchset as close as possible. The stable-rt patchset won’t gain new features (e.g. hrtimer rework, cpu hotplug rework, no_hz fixes) because backporting has a high risk of breaking stable-rt. Therefore, the stable-rt maintaining goals overlap with the cip-rt goals, which allows keep the variations of the real-time patchset smaller.

For more details, visit the CIP kernel maintenance wiki page. If you want to join the conversation or ask questions, subscribe to the CIP Dev List.