platform/kvm: limit virtual address space size to 256TB

This is maximum that can be addressed with 4-level paging.

PiperOrigin-RevId: 438668768
This commit is contained in:
Andrei Vagin
2022-03-31 14:59:41 -07:00
committed by gVisor bot
parent c86b049468
commit 973f8636d7
+6
View File
@@ -84,6 +84,12 @@ var (
func Init(fs cpuid.FeatureSet) {
// Initialize all sizes.
VirtualAddressBits = uintptr(fs.VirtualAddressBits())
// TODO(gvisor.dev/issue/7349): introduce support for 5-level paging.
// Four-level page tables allows to address up to 48-bit virtual
// addresses.
if VirtualAddressBits > 48 {
VirtualAddressBits = 48
}
PhysicalAddressBits = uintptr(fs.PhysicalAddressBits())
UserspaceSize = uintptr(1) << (VirtualAddressBits - 1)
MaximumUserAddress = (UserspaceSize - 1) & ^uintptr(hostarch.PageSize-1)