|
|
|
|
|
by mdwrigh2
2689 days ago
|
|
While the kernel theoretically has the ability to preempt you, it's not supposed to when using a realtime priority thread. Per the RH realtime guide[[1]: """
SCHED_FIFO and SCHED_RR threads will run until one of the following events occurs: - The thread goes to sleep or begins waiting for an event - A higher-priority realtime thread becomes ready to run If one of these events does not occur, the threads will run indefinitely on that processor, and lower-priority threads will not be given a chance to run. This can result in system service threads failing to run, and operations such as memory swapping and filesystem data flushing not occurring as expected.
""" SCHED_DEADLINE, which is newer and not mentioned in the guide, can provide a bit stronger guarantees because it can fail if it thinks the requirements you set aren't actually obtainable based on other system load (including high priority kernel tasks that might need to run, etc). [1]: https://access.redhat.com/documentation/en-US/Red_Hat_Enterp... |
|