On Mon, 7 Dec 2020 10:41:25 -0500 Collin Walling <walling@xxxxxxxxxxxxx> wrote: > The DIAGNOSE 0x0318 instruction, unique to s390x, is a privileged call > that must be intercepted via SIE, handled in userspace, and the > information set by the instruction is communicated back to KVM. > > To test the instruction interception, an ad-hoc handler is defined which > simply has a VM execute the instruction and then userspace will extract > the necessary info. The handler is defined such that the instruction > invocation occurs only once. It is up to the caller to determine how the > info returned by this handler should be used. > > The diag318 info is communicated from userspace to KVM via a sync_regs > call. This is tested During a sync_regs test, where the diag318 info is s/During/during/ > requested via the handler, then the info is stored in the appropriate > register in KVM via a sync registers call. > > If KVM does not support diag318, then the tests will print a message > stating that diag318 was skipped, and the asserts will simply test > against a value of 0. > > Signed-off-by: Collin Walling <walling@xxxxxxxxxxxxx> > --- > tools/testing/selftests/kvm/Makefile | 2 +- > .../kvm/include/s390x/diag318_test_handler.h | 13 +++ > .../kvm/lib/s390x/diag318_test_handler.c | 82 +++++++++++++++++++ > .../selftests/kvm/s390x/sync_regs_test.c | 16 +++- > 4 files changed, 111 insertions(+), 2 deletions(-) > create mode 100644 tools/testing/selftests/kvm/include/s390x/diag318_test_handler.h > create mode 100644 tools/testing/selftests/kvm/lib/s390x/diag318_test_handler.c Looks reasonable to me. Acked-by: Cornelia Huck <cohuck@xxxxxxxxxx>