[PATCH 0/4] KVM: selftests: Introduce VM_MODE_PXXV48_4K
From: Peter Xu
Date: Tue Aug 27 2019 - 09:10:31 EST
The work is based on Thomas's s390 port for dirty_log_test.
This series originates from "[PATCH] KVM: selftests: Detect max PA
width from cpuid"  and one of Drew's comments - instead of keeping
the hackish line to overwrite guest_pa_bits all the time, this series
introduced the new mode VM_MODE_PXXV48_4K for x86_64 platform.
The major issue is that even all the x86_64 kvm selftests are
currently using the guest mode VM_MODE_P52V48_4K, many x86_64 hosts
are not using 52 bits PA (and in most cases, far less). If with luck
we could be having 48 bits hosts, but it's more adhoc (I've observed 3
x86_64 systems, they are having different PA width of 36, 39, 48). I
am not sure whether this is happening to the other archs as well, but
it probably makes sense to bring the x86_64 tests to the real world on
always using the correct PA bits.
A side effect of this series is that it will also fix the crash we've
encountered on Xeon E3-1220 as mentioned  due to the
differenciation of PA width.
With , we've observed AMD host issues when with NPT=off. However a
funny fact is that after I reworked into this series, the tests can
instead pass on both NPT=on/off. It could be that the series changes
vm->pa_bits or other fields so something was affected. I didn't dig
more on that though, considering we should not lose anything.
Any kind of smoke test would be greatly welcomed (especially on s390
or ARM). Same to comments. Thanks,
Peter Xu (4):
KVM: selftests: Move vm type into _vm_create() internally
KVM: selftests: Create VM earlier for dirty log test
KVM: selftests: Introduce VM_MODE_PXXV48_4K
KVM: selftests: Remove duplicate guest mode handling
tools/testing/selftests/kvm/dirty_log_test.c | 78 +++++--------------
.../testing/selftests/kvm/include/kvm_util.h | 17 +++-
.../selftests/kvm/lib/aarch64/processor.c | 3 +
tools/testing/selftests/kvm/lib/kvm_util.c | 77 ++++++++++++++----
.../selftests/kvm/lib/x86_64/processor.c | 8 +-
5 files changed, 107 insertions(+), 76 deletions(-)