Message ID | 20190913074646.25666-1-thuth@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/s390x/kvm: Officially require at least kernel 3.15 | expand |
On 13.09.19 09:46, Thomas Huth wrote: > Since QEMU v2.10, the KVM acceleration does not work on older kernels > anymore since the code accidentally requires the KVM_CAP_DEVICE_CTRL > capability now - it should have been optional instead. > Instead of fixing the bug, we asked in the ChangeLog of QEMU 2.11 - 3.0 > that people should speak up if they still need support of QEMU running > with KVM on older kernels, but seems like nobody really complained. > Thus let's make this official now and turn it into a proper error > message, telling the users to use at least kernel 3.15 now. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > hw/intc/s390_flic_kvm.c | 6 ------ > target/s390x/kvm.c | 7 +++++++ > 2 files changed, 7 insertions(+), 6 deletions(-) > > diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c > index 819aa5e198..cedccba8a9 100644 > --- a/hw/intc/s390_flic_kvm.c > +++ b/hw/intc/s390_flic_kvm.c > @@ -589,12 +589,6 @@ static void kvm_s390_flic_realize(DeviceState *dev, Error **errp) > goto fail; > } > flic_state->fd = -1; > - if (!kvm_check_extension(kvm_state, KVM_CAP_DEVICE_CTRL)) { > - error_setg_errno(&errp_local, errno, "KVM is missing capability" > - " KVM_CAP_DEVICE_CTRL"); > - trace_flic_no_device_api(errno); > - goto fail; > - } > > cd.type = KVM_DEV_TYPE_FLIC; > ret = kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd); > diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c > index cea71ac7c3..97a662ad0e 100644 > --- a/target/s390x/kvm.c > +++ b/target/s390x/kvm.c > @@ -316,6 +316,13 @@ int kvm_arch_init(MachineState *ms, KVMState *s) > MachineClass *mc = MACHINE_GET_CLASS(ms); > > mc->default_cpu_type = S390_CPU_TYPE_NAME("host"); > + > + if (!kvm_check_extension(kvm_state, KVM_CAP_DEVICE_CTRL)) { > + error_report("KVM is missing capability KVM_CAP_DEVICE_CTRL - " > + "please use kernel 3.15 or newer"); > + return -1; > + } > + > cap_sync_regs = kvm_check_extension(s, KVM_CAP_SYNC_REGS); > cap_async_pf = kvm_check_extension(s, KVM_CAP_ASYNC_PF); > cap_mem_op = kvm_check_extension(s, KVM_CAP_S390_MEM_OP); > The tracepoint has to go as well as fat as I can see. Apart from that, looks good to me.
diff --git a/hw/intc/s390_flic_kvm.c b/hw/intc/s390_flic_kvm.c index 819aa5e198..cedccba8a9 100644 --- a/hw/intc/s390_flic_kvm.c +++ b/hw/intc/s390_flic_kvm.c @@ -589,12 +589,6 @@ static void kvm_s390_flic_realize(DeviceState *dev, Error **errp) goto fail; } flic_state->fd = -1; - if (!kvm_check_extension(kvm_state, KVM_CAP_DEVICE_CTRL)) { - error_setg_errno(&errp_local, errno, "KVM is missing capability" - " KVM_CAP_DEVICE_CTRL"); - trace_flic_no_device_api(errno); - goto fail; - } cd.type = KVM_DEV_TYPE_FLIC; ret = kvm_vm_ioctl(kvm_state, KVM_CREATE_DEVICE, &cd); diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index cea71ac7c3..97a662ad0e 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -316,6 +316,13 @@ int kvm_arch_init(MachineState *ms, KVMState *s) MachineClass *mc = MACHINE_GET_CLASS(ms); mc->default_cpu_type = S390_CPU_TYPE_NAME("host"); + + if (!kvm_check_extension(kvm_state, KVM_CAP_DEVICE_CTRL)) { + error_report("KVM is missing capability KVM_CAP_DEVICE_CTRL - " + "please use kernel 3.15 or newer"); + return -1; + } + cap_sync_regs = kvm_check_extension(s, KVM_CAP_SYNC_REGS); cap_async_pf = kvm_check_extension(s, KVM_CAP_ASYNC_PF); cap_mem_op = kvm_check_extension(s, KVM_CAP_S390_MEM_OP);
Since QEMU v2.10, the KVM acceleration does not work on older kernels anymore since the code accidentally requires the KVM_CAP_DEVICE_CTRL capability now - it should have been optional instead. Instead of fixing the bug, we asked in the ChangeLog of QEMU 2.11 - 3.0 that people should speak up if they still need support of QEMU running with KVM on older kernels, but seems like nobody really complained. Thus let's make this official now and turn it into a proper error message, telling the users to use at least kernel 3.15 now. Signed-off-by: Thomas Huth <thuth@redhat.com> --- hw/intc/s390_flic_kvm.c | 6 ------ target/s390x/kvm.c | 7 +++++++ 2 files changed, 7 insertions(+), 6 deletions(-)