Real-time embedded software is vital in safety-critical scenarios. Single-core execution is preferred over multicore execution due to the predictability of factors such as execution time and energy consumption. However, single-core processors are becoming increasingly hard to procure due to the widespread rise of multicore technology. Features of multicore chips, such as the behaviour of caches and buses, and the effects of energy throttling, can affect non-functional properties such as execution time of the software running on one core, even if it does not directly communicate with software running on other cores.
In this work, we aim to explore auto-tuning techniques for constructing processes that cause non-functional interference for a safety-critical application on a multicore chip. Interference is caused by launching one or more “enemy processes”; a parameterised stressing application. While the enemy process template is written manually, automated tuning techniques can be used to determine effective parameters for maximising different types of interference. We study various tuning strategies with the aim to find effective enemy processes parameters for causing interference. Our methods are developed to be portable across a variety of architectures such that enemy processes can be specifically tuned to target unique microarchitectural features.