On Fri, Jan 24, 2020 at 12:58 AM Paolo Bonzini pbonzini@redhat.com wrote:
On 23/01/20 19:04, Ben Gardon wrote:
KVM creates internal memslots covering the region between 3G and 4G in the guest physical address space, when the first vCPU is created. Mapping this region before creation of the first vCPU causes vCPU creation to fail. Prohibit tests from creating such a memslot and fail with a helpful warning when they try to.
Signed-off-by: Ben Gardon bgardon@google.com
The internal memslots are much higher than this (0xfffbc000 and 0xfee00000). I'm changing the patch to block 0xfe0000000 and above, otherwise it breaks vmx_dirty_log_test.
Perhaps we're working in different units, but I believe paddrs 0xfffbc000 and 0xfee00000 are between 3GiB and 4GiB. "Proof by Python":
B=1 KB=1024*B MB=1024*KB GB=1024*MB hex(3*GB)
'0xc0000000'
hex(4*GB)
'0x100000000'
3*GB == 3<<30
True
0xfffbc000 > 3*GB
True
0xfffbc000 < 4*GB
True
0xfee00000 > 3*GB
True
0xfee00000 < 4*GB
True
Am I missing something?
I don't think blocking 0xfe0000000 and above is useful, as there's nothing mapped in that region and AFAIK it's perfectly valid to create memslots there.
Paolo