demystifying the real time linux scheduling latency
play

Demystifying the Real-Time Linux Scheduling Latency Daniel Bristot - PowerPoint PPT Presentation

Demystifying the Real-Time Linux Scheduling Latency Daniel Bristot de Oliveira , Daniel Casini, Rmulo Silva de Oliveira and Tommaso Cucinotta Principal Software Engineer 1 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro


  1. Demystifying the Real-Time Linux Scheduling Latency Daniel Bristot de Oliveira , Daniel Casini, Rômulo Silva de Oliveira and Tommaso Cucinotta Principal Software Engineer 1 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  2. Introduction Real-Time Linux 2 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  3. Introduction “Real-Time” Linux 3 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  4. Why “real-time” Linux? Real-Time Linux vs Real-Time theory Experimental vs Analytical 4 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  5. Why “real-time” Linux? Real-Time Linux vs Real-Time theory Real-time analysis Based on the timing description of the system ● Capture all behaviors ● Precisely define the worst cases ● But depends on a precise definition of the ● system 5 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  6. Why “real-time” Linux? Real-Time Linux vs Real-Time theory Linux approach Linux was adapted to become a RTOS ● PREEMPT_RT: De facto standard ● Evaluated (mainly) with cyclictest ● Cyclictest: ● Practical: lightweight and out-of-the-box ○ It is a “black-box” test ○ No demonstration ○ Does not provide evidence of “root-cause” ○ 6 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  7. Why “Real-time” Linux? Why don’t we apply RT analysis on Linux? 7 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  8. Why “Real-time” Linux? Linux is complex - Lots of contexts - Lots of hacks - Lots of information - Fast pacing - ... Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  9. A way out. The PREEMPT_RT thread model It defines the specifications of threads synchronization: 9 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  10. Demystifying the Real-Time Linux Scheduling Latency Approach Formal specification Scheduling latency bound Measurement and analysis 10 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  11. Formal Specification From formal specification to synchronization rules Formally backed natural language arguments Generators ● Basic/Independent behavior ○ e.g., irq_disable/enable, scheduler call ○ Translated into a set of operations ● Specifications ● Relations among generators ○ e.g., necessary conditions to call the scheduler ○ Translated into a set of synchronization rules ● 11 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  12. Scheduling latency bound Scheduling latency definition From the first necessary condition to set need resched , to the the last The scheduling latency experienced by an arbitrary thread τ is: action after the scheduling, which is enabling preemption after the longest time elapsed between the time A in which any job of τ ● the return from becomes ready and with the highest priority , __schedule(). and the time F in which the scheduler returns and allows τ to execute ● its code . 12 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  13. Scheduling latency bound Interference and blocking The scheduling latency in this paper refers to the delay between the notification of a new highest priority thread, to The scheduling latency is caused by: point in which this thread starts running its own Blocking from the current (and so lower) priority ● code. thread; The highest priority thread Including scheduling. ● can belong to any scheduler: the analysis is scheduler independent. Interference from IRQs and NMI. ● 13 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  14. Blocking bound Blocking bound From the specification that bounds the block to a timeline 14 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  15. Blocking bound Timeline and cases All possible cases 15 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  16. Blocking bound Blocking variables D POID : preemption or interrupts disabled to ● In the model, the postpone the scheduler; preemption control is D PAIE : preemption and interrupts enabled, as a ● specialized into two transient state from poid to psd ; when scheduling different operations: to a new highest priority thread. postpone the scheduler D PSD : preemption disable to schedule; ● (the most known D ST : delay caused by the scheduling tail; the “non behavior) or to protect the ● execution of the return” point in which a new arrived task will have to __schedule() function from wait for the current scheduling operation to finish recursion. before scheduling. 16 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  17. Rtsl toolking Timeline and cases Variables in the the timeline 17 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  18. Interference bound Timeline and cases IRQ and NMI interference 18 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  19. Scheduling latency bound And the scheduling latency bounds to: The bound considers all possible cases. Note that the Latency L is present in both sides of the equation. So, L is bounded by the L = max(D ST , D POID ) + D PAIE + D PSD + I NMI (L) + I IRQ (L) least positive value fulfilling the equation (like on RTA). 19 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  20. Interrupts characterization Interrupts are workload dependent This topic was heavily Instead of proposing “the best” interrupt discussed at the Real-time ● Micro Conference (inside characterization, the rtsl reports the scheduling Linux Plumbers) in 2019, latency based on some well-known more info here: characterizations: No interrupt ○ Worst single interrupt ○ Single occurence of all interrupts ○ Sporadic ○ Sliding window (Author’s preferred) ○ Sliding window with oWCET ○ 20 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  21. rt_sched_latency toolkit A practical scheduling latency estimation tool Method and challenges Based on the latency bound ● The latency bound is based on the model ● The model is based on tracing of events ● but high frequency events ○ hundreds MB/sec/CPU ■ Challenges: ● To minimize the (runtime) overhead ○ Work out-of-the-box ○ 21 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  22. A toolkit rt_sched_latency (rtsl) Based on perf Works in two phases: - The record mode saves the trace data; - The report mode process the trace and does the analysis. 22 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  23. rt_sched_latency toolkit record phase Low overhead trace recording Filters the high frequency trace ● Doing in-kernel processing ○ For blocking variables: ● Reports only the discover of new max values ○ For IRQ and NMI: ● Reports one event for each occurrence ○ Discounts the interference: ● e.g., IRQ interference on a poid ○ 23 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  24. rt_sched_latency toolkit report phase Low overhead trace recording After the capture, analyzes the trace. ● All in user-space. ○ Most of the analysis is done in python ● Easy to extend ○ Two outputs: ● Textual: good for debug ○ Chart: good comparisons (and papers :-)) ○ Does a per-cpu scheduling latency analysis ● Using different IRQ/NMI characterization... ○ 24 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  25. rt_sched_latency toolkit rtsl report output Textual output 25 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

  26. rt_sched_latency toolkit rtsl report output Chart output 26 Demystifying The Real-Time Linux Scheduling Latency - 32 nd Euromicro Conference on Real-Time Systems - ECRTS’20

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend