On LoongArch system, GVA width is 47 bit and GPA width is 47 bit also,
here add new vm mode VM_MODE_P47V47_16K.

Signed-off-by: Bibo Mao <maob...@loongson.cn>
---
 tools/testing/selftests/kvm/include/kvm_util.h | 1 +
 tools/testing/selftests/kvm/lib/kvm_util.c     | 3 +++
 2 files changed, 4 insertions(+)

diff --git a/tools/testing/selftests/kvm/include/kvm_util.h 
b/tools/testing/selftests/kvm/include/kvm_util.h
index 373912464fb4..f8faed8c8024 100644
--- a/tools/testing/selftests/kvm/include/kvm_util.h
+++ b/tools/testing/selftests/kvm/include/kvm_util.h
@@ -177,6 +177,7 @@ enum vm_guest_mode {
        VM_MODE_P36V48_4K,
        VM_MODE_P36V48_16K,
        VM_MODE_P36V48_64K,
+       VM_MODE_P47V47_16K,
        VM_MODE_P36V47_16K,
        NUM_VM_MODES,
 };
diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c 
b/tools/testing/selftests/kvm/lib/kvm_util.c
index 815bc45dd8dc..5649cf2f40e8 100644
--- a/tools/testing/selftests/kvm/lib/kvm_util.c
+++ b/tools/testing/selftests/kvm/lib/kvm_util.c
@@ -222,6 +222,7 @@ const char *vm_guest_mode_string(uint32_t i)
                [VM_MODE_P36V48_4K]     = "PA-bits:36,  VA-bits:48,  4K pages",
                [VM_MODE_P36V48_16K]    = "PA-bits:36,  VA-bits:48, 16K pages",
                [VM_MODE_P36V48_64K]    = "PA-bits:36,  VA-bits:48, 64K pages",
+               [VM_MODE_P47V47_16K]    = "PA-bits:47,  VA-bits:47, 16K pages",
                [VM_MODE_P36V47_16K]    = "PA-bits:36,  VA-bits:47, 16K pages",
        };
        _Static_assert(sizeof(strings)/sizeof(char *) == NUM_VM_MODES,
@@ -248,6 +249,7 @@ const struct vm_guest_mode_params vm_guest_mode_params[] = {
        [VM_MODE_P36V48_4K]     = { 36, 48,  0x1000, 12 },
        [VM_MODE_P36V48_16K]    = { 36, 48,  0x4000, 14 },
        [VM_MODE_P36V48_64K]    = { 36, 48, 0x10000, 16 },
+       [VM_MODE_P47V47_16K]    = { 47, 47,  0x4000, 14 },
        [VM_MODE_P36V47_16K]    = { 36, 47,  0x4000, 14 },
 };
 _Static_assert(sizeof(vm_guest_mode_params)/sizeof(struct 
vm_guest_mode_params) == NUM_VM_MODES,
@@ -319,6 +321,7 @@ struct kvm_vm *____vm_create(struct vm_shape shape)
        case VM_MODE_P36V48_16K:
                vm->pgtable_levels = 4;
                break;
+       case VM_MODE_P47V47_16K:
        case VM_MODE_P36V47_16K:
                vm->pgtable_levels = 3;
                break;
-- 
2.39.3


Reply via email to