Skip to content
  • Martin Schwidefsky's avatar
    s390/kvm: avoid global config of vm.alloc_pgste=1 · 23fefe11
    Martin Schwidefsky authored
    
    
    The system control vm.alloc_pgste is used to control the size of the
    page tables, either 2K or 4K. The idea is that a KVM host sets the
    vm.alloc_pgste control to 1 which causes *all* new processes to run
    with 4K page tables. For a non-kvm system the control should stay off
    to save on memory used for page tables.
    
    Trouble is that distributions choose to set the control globally to
    be able to run KVM guests. This wastes memory on non-KVM systems.
    
    Introduce the PT_S390_PGSTE ELF segment type to "mark" the qemu
    executable with it. All executables with this (empty) segment in
    its ELF phdr array will be started with 4K page tables. Any executable
    without PT_S390_PGSTE will run with the default 2K page tables.
    
    This removes the need to set vm.alloc_pgste=1 for a KVM host and
    minimizes the waste of memory for page tables.
    
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    23fefe11