nSVM: Test non-MBZ reserved bits in CR3 in long mode and legacy PAE mode

According to section "CR3" in APM vol. 2, the non-MBZ reserved bits in CR3
need to be set by software as follows:

	"Reserved Bits. Reserved fields should be cleared to 0 by software
	when writing CR3."

But experiments show that consistency checking in SVM ignores these
non-MBZ-reserved bits in CR3, meaning they can be set to 1 also. However,
setting them to 1 may cause guest crashes in some modes and in bare metal
environments. Hence, this test induces an #NPF by clearing the "P" bit in
the highest level page table, when testing the 1-setting of these bits.
Inducing an #NPF causes the guest to exit to userspace before any guest
instruction is executed thus avoiding any crash.

Signed-off-by: Krish Sadhukhan <krish.sadhukhan@oracle.com>
Message-Id: <20201006190654.32305-4-krish.sadhukhan@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
9 jobs for master in 0 seconds (queued for 80 minutes and 41 seconds)
latest
Status Job ID Name Coverage
  Test
failed #5
build-aarch64

failed #6
build-arm

failed #13
build-centos7

failed #12
build-clang

failed #11
build-i386

failed #7
build-ppc64be

failed #8
build-ppc64le

failed #9
build-s390x

failed #10
build-x86_64

 
Name Stage Failure
failed
build-arm Test There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
build-ppc64be Test There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
build-x86_64 Test There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
build-i386 Test There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
build-ppc64le Test There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
build-s390x Test There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
build-aarch64 Test There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
build-clang Test There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log
failed
build-centos7 Test There has been a timeout failure or the job got stuck. Check your timeout limits or try again
No job log