QEMU has had huge page support for a longer time already, but KVM memory management under s390x needed some changes to work with huge backings.
Now that we have support, let's enable it if requested and available. Otherwise we now properly tell the user if there is no support and back out instead of failing to run the VM later on. Signed-off-by: Janosch Frank <fran...@linux.ibm.com> --- target/s390x/kvm.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index d923cf4240..26e6937498 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -285,6 +285,12 @@ int kvm_arch_init(MachineState *ms, KVMState *s) { MachineClass *mc = MACHINE_GET_CLASS(ms); + if (mem_path && kvm_vm_enable_cap(s, KVM_CAP_S390_HPAGE, 0)) { + error_report("Huge page backing was specified, " + "but this KVM does not support huge pages"); + return -EINVAL; + } + mc->default_cpu_type = S390_CPU_TYPE_NAME("host"); cap_sync_regs = kvm_check_extension(s, KVM_CAP_SYNC_REGS); cap_async_pf = kvm_check_extension(s, KVM_CAP_ASYNC_PF); -- 2.14.3