Description of problem:
For now we have to enable allocation of PGSTE globally, using sysctl vm.allocate_pgste=1 (see bz 1454281) in order to be able to run qemu-kvm guests.
This results in the double size of lowest level page tables of all processes. Latest upstream contribution allow to allocate PGSTE selectively, per process. This requires kernel, QEMU and binutil changes.
The QEMU patch is still being discussed upstream, but should soon be included.
Patch is now upstream:
Author: Christian Borntraeger <email@example.com>
Date: Wed Aug 23 12:16:23 2017 +0200
configure: enable --s390-pgste linker option
I believe we should remove the vm.allocate_pgste enablement in the same go, as we'll have kernel 4.14 with needed support anyway.
Fix included in qemu-kvm-ma-2.10.0-3.el7
Reproduced with qemu-kvm-ma-2.10.0-2.el7.s390x:
[root@kerneldev7 qemu-2]# sysctl vm.allocate_pgste=0
vm.allocate_pgste = 0
[root@kerneldev7 qemu-2]# /usr/libexec/qemu-kvm -vnc :0 -monitor stdio -no-shutdown
ioctl(KVM_CREATE_VM) failed: 22 Invalid argument
Host kernel setup problem detected. Please verify:
- for kernels supporting the switch_amode or user_mode parameters, whether
user space is running in primary address space
- for kernels supporting the vm.allocate_pgste sysctl, whether it is enabled
qemu-kvm: failed to initialize KVM: Invalid argument
qemu-kvm: Back to tcg accelerator
Verified with qemu-kvm-ma-2.10.0-7.el7.s390x:
# sysctl vm.allocate_pgste=0
vm.allocate_pgste = 0
[root@kerneldev7 qzhang]# /usr/libexec/qemu-kvm -vnc :0 -monitor stdio -no-shutdown
QEMU 2.10.0 monitor - type 'help' for more information
Boot a guest and it starts successfully:
(1/1) smp_2.2048m.repeat1.run_test.Host_RHEL.RHEL_ALT.m7.u5.s390-virtio.qcow2.virtio_scsi.up.virtio_net.RHEL.ALT.7.4.s390x.io-github-autotest-qemu.boot: PASS (32.61 s)
So, setting to VERIFIED.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.