User: Password:
Subscribe / Log in / New account

KS2010: Deadline scheduling

KS2010: Deadline scheduling

Posted Nov 2, 2010 17:04 UTC (Tue) by daniel (guest, #3181)
Parent article: KS2010: Deadline scheduling

Linus complained that, in practice, it's impossible to set the deadlines correctly. In the end, application developers have to request the absolute worst-case execution time, even though the application will almost never need that much CPU time.

Where there's a will there's a way. Designate some subset of CPUs as realtime-only, then the worst that can happen is a task that could otherwise overcommit a CPU cannot be moved to that CPU.

(Log in to post comments)

KS2010: Deadline scheduling

Posted Nov 3, 2010 19:30 UTC (Wed) by tcucinotta (guest, #69261) [Link]

Actually, profiling the "absolute WCET" is not really necessary, at least for a set of time-sensitive applications, like multimedia. You can perform an allocation of CPU power which nearly corresponds to the maximum workload observed over a benchmarking time horizon, or a sufficiently high percentile of its distribution, and/or use some over-provisioning threshold.

If actually needed, given a certain allocation, one can compute what is the expected probability of meeting the deadlines by the application, or generally speaking one can embrace stochastic analysis techniques in order to assess what is the expected performance (on a probabilistic basis) of an application.

Also, one can use adaptive scheduling techniques in order to dynamically change the allocation of computing power as due to the fluctuations (foreseen and/or observed) in the application workload (e.g., as it happens in multimedia).

KS2010: Deadline scheduling

Posted Nov 8, 2010 1:47 UTC (Mon) by vonbrand (guest, #4458) [Link]

That might work for soft real time (whatever that means), for the "multiton machine that could kill you in an instant" application mentioned above this is very far from acceptable.

"Real time" is a system property (kernel with all its areas, computer on which it runs, and application code). Trying to fix that scheduling the CPU alone is certainly bullshit.

KS2010: Deadline scheduling

Posted Nov 8, 2010 20:40 UTC (Mon) by tcucinotta (guest, #69261) [Link]

I agree absolutely with all the statements. However, I also think we should undertake an incremental approach, otherwise we end-up with nothing. For this round, we're discussing about how to improve CPU scheduling. This is only one of the essential bricks that are needed in order to support real-time applications and increase predictability of software. Of course, a comprehensive approach to the problem needs to consider other resources as well, like networking and disk transfers, as well as the IRQ subsystem architecture. Still, improving CPU scheduling is just a little step that is strongly needed, has a relevant impact on the problem, and it can be done without subverting the way scheduling and resource management is handled inside the kernel.

Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds