KVM: selftests: Introduce UCALL_UNHANDLED for unhandled vector reporting
authorRicardo Koller <ricarkol@google.com>
Fri, 11 Jun 2021 01:10:17 +0000 (18:10 -0700)
committerMarc Zyngier <maz@kernel.org>
Mon, 14 Jun 2021 08:06:23 +0000 (09:06 +0100)
commit75275d7fbef47805b77e8af81a4d51e2d92db70f
treea603b148b43d9db96198f234ae884c00934c8e41
parentb7326c01122683b88e273a0cc826cd4c01234470
KVM: selftests: Introduce UCALL_UNHANDLED for unhandled vector reporting

x86, the only arch implementing exception handling, reports unhandled
vectors using port IO at a specific port number. This replicates what
ucall already does.

Introduce a new ucall type, UCALL_UNHANDLED, for guests to report
unhandled exceptions. Then replace the x86 unhandled vector exception
reporting to use it instead of port IO.  This new ucall type will be
used in the next commits by arm64 to report unhandled vectors as well.

Tested: Forcing a page fault in the ./x86_64/xapic_ipi_test
halter_guest_code() shows this:

$ ./x86_64/xapic_ipi_test
...
  Unexpected vectored event in guest (vector:0xe)

Signed-off-by: Ricardo Koller <ricarkol@google.com>
Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210611011020.3420067-4-ricarkol@google.com
tools/testing/selftests/kvm/include/kvm_util.h
tools/testing/selftests/kvm/include/x86_64/processor.h
tools/testing/selftests/kvm/lib/x86_64/processor.c