Re: [kvm-unit-tests PATCH 00/33] Support for Arm Confidential Compute Architecture

Jean-Philippe Brucker
2024-04-16T14:29:02Z

Hello,

On Fri, Apr 12, 2024 at 11:33:35AM +0100, Suzuki K Poulose wrote:
> This series adds support for running the kvm-unit-tests in the Arm CCA reference
> software architecture.
>
>
> The changes involve enlightening the boot/setup code with the Realm Service Interface
> (RSI). The series also includes new test cases that exercise the RSI calls.
>
> Currently we only support "kvmtool" as the VMM for running Realms. There was
> an attempt to add support for running the test scripts using with kvmtool here [1],
> which hasn't progressed. It would be good to have that resolved, so that we can
> run all the tests without manually specifying the commandlines for each run.
>
> For the purposes of running the Realm specific tests, we have added a "temporary"
> script "run-realm-tests" until the kvmtool support is added. We do not expect
> this to be merged.

The tests can also be run with QEMU, which requires one more patch to
share the chr-testdev DMA memory with the host. I pushed this and
additional tests here:
https://git.codelinaro.org/linaro/dcap/kvm-unit-tests

Follow the build instructions for QEMU:
https://linaro.atlassian.net/wiki/spaces/QEMU/pages/29051027459/Building+an+RME+stack+for+QEMU

Buildroot supports kvm-unit-tests but as standalone scripts. I prefer the
run_tests.sh script, which also enables comparing Realm measurements
between runs:

./configure --arch=arm64 --cross-prefix=path/to/buildroot/host/bin/aarch64-buildroot-linux-gnu-
make -j
# copy everything to the shared directory, then modify config.mak
sed -i -e "/PRETTY_PRINT_STACKS/s/yes/no/" \
-e "/ERRATATXT/s/=.*/=errata.txt/" \
-e "/HOST/s/=.*/=aarch64/" \
-e "/ARCH/s/=.*/=arm64/" \
config.mak

# Run all realm tests
ACCEL=kvm MAX_SMP=8 ./run_tests.sh -v -g realms

Thanks,
Jean