This removes checks for KVM capabilities introduced in very old kernels. I focused mostly (though not exclusively) on caps that are extremely old or have a lot of supporting code around them. The new inferior limit is Linux 4.4 (or RHEL/CentOS 7) for all architectures except ARM, for which the limit is Linux 4.19 (or RHEL/CentOS 8).
Note that sometimes older capabilities have evolved and have to be tested anyway, for example in the case of KVM_CAP_ADJUST_CLOCK it is possible to remove kvm_has_adjust_clock() but not kvm_has_adjust_clock_stable(). I intentionally didn't include capabilities that map to guest-visible features, such as KVM_CAP_TSC_DEADLINE_TIMER, instead focusing more on very old APIs. Kernel code technically does not require KVM_CAP_IRQFD to be always available on architectures that support an in-kernel interrupt controller; however this is currently true for all supported architectures, and I plan to submit a kernel patch to ensure this equivalence. Paolo Paolo Bonzini (17): kvm: remove unnecessary stub kvm: require KVM_CAP_INTERNAL_ERROR_DATA kvm: require KVM_CAP_SIGNAL_MSI kvm: require KVM_CAP_IRQFD for kernel irqchip kvm: drop reference to KVM_CAP_PCI_2_3 kvm: assume that many ioeventfds can be created kvm: require KVM_CAP_IOEVENTFD and KVM_CAP_IOEVENTFD_ANY_LENGTH kvm: unify listeners for PIO address space kvm: arm: require KVM_CAP_SET_VCPU_EVENTS kvm: i386: move KVM_CAP_IRQ_ROUTING detection to kvm_arch_required_capabilities kvm: i386: require KVM_CAP_DEBUGREGS kvm: i386: require KVM_CAP_XSAVE kvm: i386: require KVM_CAP_SET_VCPU_EVENTS and KVM_CAP_X86_ROBUST_SINGLESTEP kvm: i386: require KVM_CAP_MCE kvm: i386: require KVM_CAP_ADJUST_CLOCK kvm: i386: require KVM_CAP_SET_IDENTITY_MAP_ADDR kvm: i8254: require KVM_CAP_PIT2 and KVM_CAP_PIT_STATE2 accel/kvm/kvm-all.c | 239 ++++----------------------------- accel/stubs/kvm-stub.c | 14 -- hw/i386/kvm/clock.c | 4 - hw/i386/kvm/i8254.c | 38 ++---- hw/i386/pc.c | 6 +- hw/intc/arm_gicv3_its_common.c | 3 +- hw/intc/arm_gicv3_its_kvm.c | 2 +- hw/misc/pci-testdev.c | 3 +- hw/s390x/virtio-ccw.c | 4 - hw/virtio/vhost-user.c | 7 +- hw/virtio/virtio-mmio.c | 4 - hw/virtio/virtio-pci.c | 23 +--- include/sysemu/kvm.h | 39 +----- include/sysemu/kvm_int.h | 6 - system/memory.c | 16 +-- target/arm/kvm.c | 10 +- target/i386/kvm/kvm.c | 225 +++---------------------------- target/i386/kvm/kvm_i386.h | 2 - target/riscv/kvm/kvm-cpu.c | 2 +- 20 files changed, 77 insertions(+), 572 deletions(-) -- 2.41.0
