Presentation is loading. Please wait.

Presentation is loading. Please wait.

How much does OS operation impact your code’s performance?

Similar presentations


Presentation on theme: "How much does OS operation impact your code’s performance?"— Presentation transcript:

1 Characterizing the Microarchitectural Side Effects of Operating System Calls
How much does OS operation impact your code’s performance? As your program executes, data is stored within the CPU to improve instruction execution time Branch Predictor TLB Cache Addison Mayberry, Matt Laquidara, Charles Weems Architecture and Language Implementation Lab University of Massachusetts Amherst When user code makes call to the operating system, these structures are altered When your code resumes, it will be slowed until this data is replaced How do we measure this impact? Features Challenges Within a simulator, we back up all of the data in these structures before a system call We make use of the MARSSx86 simulator, which is cycle-accurate and validated against actual hardware The performance of MARSSx86 varies based on external factors such as clock events and I/O, multiple trials must be run for accuracy We then reset the structures, clearing the original data We are able to describe in detail the low-level effects of OS interference on microarchitectural state This profiling must be done for each OS version, the results vary between operating systems The system call is then allowed to run and put data into the structures Our system can clearly demonstrate the performance decrease that is caused by OS calls The results are sensitive to perturbing factors such as the link order of the compiled kernel When the call concludes, we record the amount of data that has been stored – this is the call’s impact Before resuming user code, the original data is placed back into the structure, allowing user code to proceed at its optimal speed with little or no performance impact The results we generate could be used to improve the accuracy of user-mode simulators that currently ignore these effects on performance There may be constructive interference from the OS, such as data being loaded into cache for user code, which our system removes We are able to perfectly save system state for easily repeatable trials Performing this backup / restore procedure increases the hit rate in each structure, indicating that most of the impact is destructive


Download ppt "How much does OS operation impact your code’s performance?"

Similar presentations


Ads by Google