KVM: s390: Limit guest size to 16TB
authorChristian Borntraeger <borntraeger@de.ibm.com>
Mon, 25 Aug 2014 10:38:57 +0000 (12:38 +0200)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Wed, 10 Sep 2014 10:19:15 +0000 (12:19 +0200)
Currently we fill up a full 5 level page table to hold the guest
mapping. Since commit "support gmap page tables with less than 5
levels" we can do better.
Having more than 4 TB might be useful for some testing scenarios,
so let's just limit ourselves to 16TB guest size.
Having more than that is totally untested as I do not have enough
swap space/memory.

We continue to allow ucontrol the full size.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kvm/kvm-s390.c

index 2037738d01a0228c5f802e4efc1ac668fbad8eb0..b95d4a481b0c19db09083c47c6ca01414c49de6c 100644 (file)
@@ -458,7 +458,7 @@ int kvm_arch_init_vm(struct kvm *kvm, unsigned long type)
        if (type & KVM_VM_S390_UCONTROL) {
                kvm->arch.gmap = NULL;
        } else {
-               kvm->arch.gmap = gmap_alloc(current->mm, -1UL);
+               kvm->arch.gmap = gmap_alloc(current->mm, (1UL << 44) - 1);
                if (!kvm->arch.gmap)
                        goto out_nogmap;
                kvm->arch.gmap->private = kvm;