540 likes | 863 Views
Sporadic Server Scheduling in Linux Theory vs. Practice. Mark Stanovich Theodore Baker Andy Wang. Real-Time Scheduling Theory. Analysis techniques to design a system to meet timing constraints Schedulability analysis Workload models Processor models Scheduling algorithms.
E N D
Sporadic Server Scheduling in LinuxTheory vs. Practice Mark Stanovich Theodore Baker Andy Wang
Real-Time Scheduling Theory • Analysis techniques to design a system to meet timing constraints • Schedulability analysis • Workload models • Processor models • Scheduling algorithms
Real-Time Scheduling Theory • Analysis techniques to design a system to meet timing constraints • Schedulability analysis • Workload models • Processor models • Scheduling algorithms
Periodic Task Task = {T, C, D} Task jobs (j1, j2, j3, …) Deadline = D time Computation time WCET = C Period = T Release time
Periodic Task sched_setscheduler(SCHED_FIFO) time clock_nanosleep()
Periodic Task • Assumptions • WCET is reliable • Arrivals are periodic • Not realistic for most tasks
Polling Server Replenishment period time Job arrivals Initial budget time
Polling Server • Type of aperiodic server • CPU usage no worse than an equivalent periodic task • Can be modeled as a periodic task • WCET = Initial Budget • Period = Replenishment Period • Budget consumed as CPU time is used • CPU time forfeited if not used • Replenish budget every period
Polling Server • Good • Bounds CPU usage • Analyzable workload model • Simplicity • Can be better • Faster response time if budget is not forfeited
Sporadic Server Replenishment period time Job arrivals Initial budget time replenishments
Sporadic Server • Originally proposed by Sprunt et. al. • Parameters • Initial budget • Replenishment period • Bounds max CPU interference for other tasks • Fits into the periodic task workload model • Better avg. response time than polling server
Sporadic Server • Scheduling algorithm for fixed-task-priority systems • Can be used in UNIX priority model • SCHED_SPORADIC is a version of SS defined in POSIX definition • POSIX variant has some errors • Corrected version in another paper
Implementation • Linux 2.6.38 • Sporadic server implementation • Corrected version • Softirq threading patch ported from earlier RT patch • Only tested on uniprocessor
Sporadic Server Performance • Metrics • CPU interference for lower priority tasks • Average response time
An Experiment B A Sends UDP packet with current timestamp Receives UDP packets Calculate response time based on arrival at UDP layer Measure CPU time for 10 second burst
Measuring CPU Time • Regehr's “hourglass” technique • Constantly read time stamp counter • Detect preemptions by large diff in read time • Sum execution chunks • Hourglass thread lower than net-rxthread • Measures interference from net-rxthread
Measuring CPU Time • Network receive thread • SCHED_FIFO • Sporadic and polling server • Budget = 1 msec • Period = 10 msec • Hourglass thread • SCHED_FIFO • Lower priority than network receive thread
Interference • CPU usage not limited properly • Additional overheads • Context switch time • Cache eviction and reloading • Not in theoretical workload model • Guarantees of theory require interference to be included in the analysis
time Polling Server = aperiodic job arrival = aperiodic job CPU time
time Sporadic Server = aperiodic job arrival = replenishment period = aperiodic job CPU time
Over Provisioning • All context switch time may not be used • e.g., one replenishment per period • Better solution • Account for CS time on-line • Charge SS for each preemption
Can we get the best of both? • Sporadic Sever • Light Load • Low response time • Polling Sever • Heavy Load • Low response time • No dropped pkts
Hybrid Server • How to switch • SS with 1 replenishment is same as polling server • Coalesce replenishments • Ensure bounded interference • Push replenishments further into the future • Switching point • Server has work but no budget
time Coalescing Replenishments Out of budget Work available
time Coalescing Replenishments Out of budget Work available
Switching Between Modes • Immediate coalescing may be too extreme • CPU time could be used for better response time • Gradual approach • Coalesce fewer replenishments at a time
time Gradual Coalescing Out of budget Work available
time Gradual Coalescing Out of budget Work available
time Gradual Coalescing
Conclusion • Theoretical analysis provides solid guarantees • Implementation must match abstract models • Additional interference terms need to be considered • SS can fit into the theoretical analysis • CPU interference experienced by both SS and preempted task
Differences Break Model • Budget amplification • Premature replenishment • Incomplete temporal isolation
Budget Amplification • Accounting error • Overruns not always charged to the server • Max execution ≤ server budget + clock res. • “if the available execution capacity would become negative...it shall be set to zero”
Defect #3: Incomplete Temporal Isolation With temporal isolation a failure in one task does not prevent others from meeting their timing constraints Problem: Execution at low priority Still preempts non-”real-time” work 46
Unreliable Temporal Isolation Highest Priority SCHED_FIFO SCHED_RR SCHED_SPORADIC SCHED_OTHER Lowest Priority 47
Deferrable Server • Bandwidth Preserving • Allow server to retain budget • Periodically replenish budget • WCET != Budget