1

In the documentation available from linux kernel, docs.kernel.org, under Chapter 6: Scheduling Classes for the topic CFS Scheduler, it says this:

sched/rt.c implements SCHED_FIFO and SCHED_RR semantics, in a simpler way than the previous vanilla scheduler did. It uses 100 runqueues (for all 100 RT priority levels, instead of 140 in the previous scheduler) and it needs no expired array.

How do i make sense of this? to be realtime, only the first and most important runqueue qualifies. why would they undermine the concept of realtime scheduling? Whats the point of 100 RT priority levels?

marian
  • 27
  • 7
  • What's the problem with that? You can have tasks with multiple RT priorities. Tasks with higher priority win over tasks with lower priority (where priority levels are the opposite with 0 = most priority and 99 = least priority). So if you have two tasks with priority 0 and 1, the task with priority 1 will only run when the task with priority 0 is stopped or sleeping. In the edge case where the first task is doing some CPU intensive busyloop, the second task will basically never run. – Marco Bonelli Jun 06 '23 at 19:28
  • it just doesnt appear to me how you water down the concept of real time with things that can be .. "more realtime". all animals are equal but some are more equal than others. it feels like nitpicking but technically these 99 queues are not real time anymore. – marian Jun 09 '23 at 13:14
  • I mean, sure, you can very well fork Linux and create your own OS where real time tasks have only one priority level. That was the design choice of Linux developers. – Marco Bonelli Jun 09 '23 at 13:17

0 Answers0