On 11/10/21 22:19, Aaron Lewis wrote:
The motivation behind this change is to test the routing logic when an exception occurs in an L2 guest and ensure the exception goes to the correct place. For example, if an exception occurs in L2, does L1 want to get involved, or L0, or do niether of them care about it and leave it to L2 to handle. Test that the exception doesn't end up going to L1 When L1 didn't ask for it. This was occurring before commit 18712c13709d ("KVM: nVMX: Use vmx_need_pf_intercept() when deciding if L0 wants a #PF") fixed the issue. Without that fix, running vmx_pf_exception_test_reduced_maxphyaddr with allow_smaller_maxphyaddr=Y would have resulted in the test failing with the following error: x86/vmx_tests.c:10698: assert failed: false: Unexpected exit to L1, exit_reason: VMX_EXC_NMI (0x0) This series only tests the routing logic for #PFs. A future series will address other exceptions, however, getting #PF testing in place is a big enough chunk that the other exceptions will be submitted seperately (in a future series). This series is dependant on Paolo's changes (inlcuded). Without them, running ac_test_run() on one of the userspace test fails. Of note: the commit ("x86: get rid of ring0stacktop") has been updated to include a fix for a compiler error to get it building on clang. This series is also dependant on the commit ("x86: Look up the PTEs rather than assuming them"). This was sent out for review seperately, however, it is needed to get ac_test_run() running on a different cr3 than the one access_test runs on, so it is included here as well. This is also v2 of that commit. While preparing this series a review came in, so I just included the changes here.
Queued, thanks. Paolo