HyperSSE: Static Analysis of Real-Time Hypervisor Systems with ARA

image

Context

Within the AHA project, we focus on optimizing embedded systems by specialization of the OS itself. Using the Automatic Real-time Analyzer (ARA), we perform static analysis to find interactions between different tasks1. With the latest addition, the MultiSSE, ARA can analyze interactions on systems like multicore AUTOSAR to allow for static optimization.

However, modern complex embedded systems may not only distribute tasks over multicore systems, but instead partition the hardware into multiple hypervised domains2. Each domain can run its own RTOS instance, making powerful central computing hardware with time-critical software from various suppliers feasible.

Problem

With strict separation of domains, e.g. by static partitioning of CPUs to RTOS instances, a naive integrator would expect the single instances to behave exactly as before on a dedicated system. Still, the domains may share other hardware like the last-level cache, memory controller and DRAM banks, increasing the worst-case execution time on memory-bound tasks, especially when other domains are under load. To identify possible timing violations, static analysis of such systems may help the integrator allowing resource-aware dimensioning of such systems instead of heavy over-provisioning. Other approaches for such complex systems usually make use of dynamic profiling, e.g. analyze and limit memory bus contention4.

Goal

In this thesis, the static analysis MultiSSE shall be applied to a hypervisor like Xen. Previously analyzing system calls within the RTOS, solely the Xen hypercalls are now of interest to the static analysis. Specifically the "Event Channel" hypercall3, which can be used to issue an inter-VM-interrupt to signal new data in shared memory, has to be analyzed. Because of the static partitioning, VM scheduling can be ignored, making the analysis comparably simple and reducing the probability of state explosion.

Steps:

Topics: Python, C++, LLVM, Real-Time Operating System, Hypervisor, Static Analysis

References

RTSJ Journal
Applied static analysis and specialization of cross-core syscalls for multi-core AUTOSAR OS
Gerion Entrup, Andreas Kässens, Björn Fiedler, Daniel LohmannReal-Time SystemsSpringer2024.
PDF 10.1007/s11241-024-09429-1 [BibTex]