Bug 1485399

Summary: Backport selective allocation of PGSTE to avoid global vm.allocate_pgste
Product: Red Hat Enterprise Linux 7 Reporter: David Hildenbrand <dhildenb>
Component: qemu-kvm-maAssignee: Cornelia Huck <cohuck>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: medium    
Version: 7.5-AltCC: cohuck, dhildenb, knoel, michen, qzhang, rbalakri, thuth, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: s390x   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-ma-2.10.0-3.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 14:50:48 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1485395, 1485398    
Bug Blocks:    

Description David Hildenbrand 2017-08-25 14:58:08 UTC
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.

Additional info:
The QEMU patch is still being discussed upstream, but should soon be included.

https://lists.gnu.org/archive/html/qemu-devel/2017-08/msg04363.html

Comment 2 David Hildenbrand 2017-09-04 15:50:23 UTC
Patch is now upstream:

commit e9a3591fa09f273592451f8b9f83692bcbedb60c
Author: Christian Borntraeger <borntraeger.com>
Date:   Wed Aug 23 12:16:23 2017 +0200

    configure: enable --s390-pgste linker option

Comment 3 Cornelia Huck 2017-10-11 12:50:46 UTC
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.

Comment 6 Miroslav Rezanina 2017-10-20 09:32:59 UTC
Fix included in qemu-kvm-ma-2.10.0-3.el7

Comment 8 Qunfang Zhang 2017-11-27 06:45:03 UTC
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.

Comment 12 errata-xmlrpc 2018-04-10 14:50:48 UTC
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.

https://access.redhat.com/errata/RHBA-2018:0831