Multicore-Debugging with Virtualization-Awareness
embedded world Conference 2020
lecture by Frank Erdrich, Head of Software at the emtrion GmBH
SESSION 3.3 II Embedded OS VI - Virtualization & Partitioning II
27.02.2020, 14:00- 14:30 pm
Conference Counter NCC Ost
Embedded Systems are available in a wide range of performance levels. Debugging of single-core systems is very simple with the tools available. It gets more complicated on multicore SoCs due to its real parallel nature. In virtualized systems, it is even more complicated. Debuggers now have to deal with the different OS running in parallel with communication and hardware for virtualization.
Virtualization itself can be achieved with hypervisors like XEN. Most hypervisors are not designed for Embedded Systems due to constraints like realtime and safety. There are also partitioning hypervisors like Jailhouse. Hardware is partitioned and can't be shared. Realtime and safety are easier to achieve.
Now the difficulty is to debug such a virtualized multicore system. A debugger needs knowledge about the operating systems, the virtualization, the mapping of the peripherals, cores, and memory of each guest. The following text will show, how awareness for Jailhouse was brought into the Lauterbach debugger.