Updates to seL4Bench from seL4 10.1.x to 11.0.x
External
- Add new VCPU benchmarks. This new benchmark app benchmarks the following overheads:
- The overhead of a
HVC
privilege escalation from EL1 to EL2.
- The overhead of an
ERET
privilege de-escalation from EL2 to EL1.
- The overhead of a
NULL
hypercall into the seL4 EL2 kernel.
- The overhead of an
seL4_Call
syscall.
- The overhead of an
seL4_Reply
syscall.
- Add griddle support with
easy-settings.cmake
file.
- Force FPU state to only be restored when used.
This ensures that during benchmarks where the FPU state isn’t being used
that the FPU state does not get restored. This ensures that context
switches in benchmarks accurately show the case where FPU restore is not
performed.
- Allow for platform counters to be enabled in IPC benchmark.
- Update
page_mapping
benchmark to remap pages using the changed kernel API.
Internal
sel4bench
: make plat_setup
a weak symbol and remove stub functions for each platform
sel4bench
: Add newlines to printf
calls.
printf
buffering the output makes debugging harder as output becomes
ordered differently.
- Update usages of
libcpio
to match new api.
- Style files.
smp
: use SEL4BENCH_RESET_CCNT
. This is a generic function for achieving what the code was hardcoded to
armv7 for.
sel4bench
: start looking for untyped at seL4_MaxUntypedBits
.
- Use
sel4runtime
.
libsel4benchsupport
: fix child process stack init by ensuring benchmark_spawn_process
leaves the stack top
intact.
sel4bench
: remove autoconf.h
and global Configuration
library and link configuration libraries explicitly.
- Rename configuration libraries to follow a consistent naming convention.
- Use
sel4rpc
library for allocating untypeds.
- Remove
sel4platsupport_timer
usages and replace with ltimer
and new ps_io_irq_t
interfaces.
- Rename
CONFIG_KERNEL_RT
to CONFIG_KERNEL_MCS
.
- Fix SMP thread checkpointing. This fixes breakage in SMP x86_64 benchmark.
- Refactor buildsystem to keep up with underlying changes. Try to also make configuration scripts easier to follow.
- Use device tree for binding drivers to devices on Arm.