Real-Time Systems Group Accounting for Cache Related Pre-emption Delays in Hierarchal Scheduling Will Lunniss1 Sebastian Altmeyer2 Giuseppe Lipari3,4 Robert I. Davis1 1Department of Computer Science, University of York, UK {wl510, rob.davis}@york.ac.uk 2Computer Systems Architecture Group, University of Amsterdam, Netherlands altmeyer@uva.nl 3Scuola Superiore, Sant'Anna, IT g.lipari@sssup.it 4LSV – ENS Cachan, FR giuseppe.lipari@lsv.ens-cachan.fr Real-Time Systems Group Outline Hierarchical Scheduling Cache Related Pre-emption Delays (CRPD) Accounting for CRPD in Hierarchical Scheduling Evaluation Conclusions 2 Real-Time Systems Group Outline Hierarchical Scheduling Cache Related Pre-emption Delays (CRPD) Accounting for CRPD in Hierarchical Scheduling Evaluation Conclusions 3 Real-Time Systems Group Hierarchical Scheduling Hierarchical scheduling provides a means of composing multiple real-time components (applications) on a single processor Components should be isolated and not interfere with each other Divide up access to the processor using a global scheduler Schedule tasks in each component using a local scheduler 4 Real-Time Systems Group Hierarchical Scheduling Assume single processor Assume each component has a dedicated server, S, that allocates processor capacity to it Assume servers are scheduled globally using non-preemptive scheduler Assume tasks are scheduled locally using pre-emptive FP scheduler Each server SG, has a budget QG, and a period PG 5 Real-Time Systems Group Hierarchical Scheduling Components scheduled globally using non preemptive scheduling Tasks scheduled locally using pre-emptive FP scheduling 6 Real-Time Systems Group Supply Bound Function Accounts for non dedicated access to the processor inverse supply bound function (isbf) determine the maximum amount of time needed by a specific server to supply some capacity c [1] I. Shin and I. Lee, "Periodic Resource Model for Compositional Real-Time Guarantees," in Proceedings of the 24th IEEE Real-Time Systems Symposium (RTSS), Cancun, Mexico, 2003, pp. 2-13. 7 Real-Time Systems Group Schedulability Analysis for Hierarchical Systems R i Jj 1 G Ri isbf Ci Cj T j j hp ( G , i ) Wrap response time analysis in the inverse supply bound function 8 Restrict the set of tasks to those in the same component Real-Time Systems Group Outline Hierarchical Scheduling Cache Related Pre-emption Delays (CRPD) Accounting for CRPD in Hierarchical Scheduling Evaluation Conclusions 9 Real-Time Systems Group Cache Related Pre-emption Delays (CRPD) Pre-empting task can evict cache blocks belonging to the pre-empted task CRPD are introduced when the pre-empted task has to reload some of those evicted cache blocks after resuming Tasks in other components could evict cache blocks, causing ‘inter-component’ CRPD 10 Real-Time Systems Group Cache Block Categorisation Evicting Cache Blocks (ECBs) Loaded into cache and can therefore evict other blocks Useful Cache Blocks (UCBs) Reused once they have been loaded into cache before potentially being evicted by the task If evicted by another task, they may have to be reloaded which introduces CRPD UCBs are always also ECBs 11 Real-Time Systems Group CRPD in Hierarchical Scheduling Component-level CRPD Task-level CRPD 12 Real-Time Systems Group Outline Hierarchical Scheduling Cache Related Pre-emption Delays (CRPD) Accounting for CRPD in Hierarchical Scheduling Evaluation Conclusions 13 Real-Time Systems Group Integrating CRPD Analysis R J i j G Ri 1 isbf G Ci C j i , j i T j jhp ( G , i ) Task-level CRPD determined using the Combined Multiset approach [1] Component-level CRPD [1] Altmeyer, S., Davis, R.I., and Maiza, C. Improved Cache Related Pre-emption Delay Aware Response Time Analysis for Fixed Priority Pre-emptive Systems. Real-Time Systems, 48, 5 (September 2012), 499-512. 14 Real-Time Systems Group Approach Variation 1 ‘-All’ Assume that every time server SG is suspended, all of the other servers run and their tasks evict all the cache blocks that they use This approach could be pessimistic if servers do not have equal periods 15 Real-Time Systems Group Approach Variation 1 ‘-All’ Assume that every time server SG is suspended, all of the other servers run and their tasks evict all the cache blocks that they use Ri E Ri 1 G P G 16 Real-Time Systems Group UCB-ECB-ALL Multiplied by the number of times component G is suspended and resumed during the response time of task τi iG G Z BRT E Ri UCBk ECB khepG ,i ZZ G Multiplied by the cost incurred when reloading a block, the Block Reload Time (BRT) Calculate the union of UCBs of task τi and all tasks that are part of component G that could pre-empt it 17 Calculate the union of ECBs of all other components Real-Time Systems Group Approach Variation 2 ‘-Counted’ Consider each component separately by calculating the number of disruptive executions that server SZ can have on task τi in component G during the response time of task τi Tasks in component Z cannot evict the same cache block multiple times even if component Z runs more than once while component G is suspended 18 Real-Time Systems Group Approach Variation 2 ‘-Counted’ Consider each component separately by calculating the number of disruptive executions that server SZ can have on task τi in component G during the response time of task τi X 19 Z G t S , t min E t , 1 Z P G Real-Time Systems Group UCB-ECB-Counted Summed for all other components iG BRT Z G Z X S , R UCB ECB i k Z khepG ,i Z G Multiplied by the number of disruptive executions of component Z during the response time of task τi 20 Calculate the union of UCBs of task τi and all tasks that are part of component G that could pre-empt it, intersected with the ECBs of component Z Real-Time Systems Group Approach Variation 3 ‘-Open’ Ignore details of other components, assume all blocks are evicted by the other components Variation of ‘-All’ approaches The union of ECBs of the other components is assumed to contain all cache blocks Allows the analysis to be used when no information about the other components is available 21 Real-Time Systems Group Outline Hierarchical Scheduling Cache Related Pre-emption Delays (CRPD) Accounting for CRPD in Hierarchical Scheduling Evaluation Conclusions 22 Real-Time Systems Group Evaluation Methodology Assign equal server periods to all components Split tasks equally between components Default of 24 tasks and 3 components Determine if the system is schedulable Perform a binary search to find the minimum server capacity required to schedule each component As server periods are equal, if the total capacity of all servers is less than 100% then the system is schedulable 23 Real-Time Systems Group Evaluation Accounting for all of the other components at once, or assuming that the cache is flushed, performs the best Considering just the other components, and doing so individually performs the worst 24 Real-Time Systems Group Number of Components Assuming the cache if flushed every time a component is suspended is not effective with one component 25 There is no difference between the ‘-All’ and ‘Counted’ variants when there are two components Real-Time Systems Group Server Period Minimising the server periods maximises schedulability when component CRPD is not considered In practice, the server period must be carefully selected 26 Real-Time Systems Group Cache Utilisation When the cache utilisation is low, not considering the other components can be overly pessimistic 27 Once the cache utilisation of the other components is > 1, assuming the cache is flushed each time a component is suspended can be as effective as the more sophisticated approach Real-Time Systems Group Outline Hierarchical Scheduling Cache Related Pre-emption Delays (CRPD) Accounting for CRPD in Hierarchical Scheduling Evaluation Conclusions 28 Real-Time Systems Group Conclusions Presented a number of approaches for bounding CRPD under hierarchical scheduling with a local FP scheduler Shown that it is important to consider inter-component CRPD Note that minimising server periods does not maximise schedulability, as is the case when inter-component CRPD is not considered Must select the server period carefully If the components fill the cache, simply assuming the cache is flushed each time a component is suspended can be very effective with equal server periods Allows a bound on CRPD to be calculated without any information about the other components in the system 29 Real-Time Systems Group Thank you for listening Any Questions? 30