During this talk, we will briefly recall the characteristics of the Linux SCHED_DEADLINE real-time scheduler, then we will illustrate two extensions recently proposed to add the reclaiming and the frequency scaling features, respectively. Moreover, we will show how a set of tools have been used to check the correctness and the performance of the implementation.
Since the release 3.14, the Linux kernel features the SCHED_DEADLINE scheduler, specifically designed for embedded real-time systems. This scheduler allows specifying the amount of CPU runtime to assign to the task and the frequency to meet its timing constraints. Recently, our research group has proposed a couple of extensions to this scheduler to add the reclaiming of unused CPU runtime (i.e. GRUB algorithm, merged in the kernel 4.13) and to reduce the energy consumption through frequency scaling (i.e., GRUB-PA). Besides summarizing the characteristics of the scheduler and how to use it, we will describe these two extensions and the several design choices made during the implementation. Finally, we will show how the various open-source (e.g., ftrace, kernelshark, LISA) and commercial tools have been used on a multi-core ARM platform to check the correctness of the implementation.