• Oliver Upton's avatar
    KVM: arm64: Make vCPU feature flags consistent VM-wide · 2251e9ff
    Oliver Upton authored
    To date KVM has allowed userspace to construct asymmetric VMs where
    particular features may only be supported on a subset of vCPUs. This
    wasn't really the intened usage pattern, and it is a total pain in the
    ass to keep working in the kernel. What's more, this is at odds with CPU
    features in host userspace, where asymmetric features are largely hidden
    or disabled.
    
    It's time to put an end to the whole game. Require all vCPUs in the VM
    to have the same feature set, rejecting deviants in the
    KVM_ARM_VCPU_INIT ioctl. Preserve some of the vestiges of per-vCPU
    feature flags in case we need to reinstate the old behavior for some
    limited configurations. Yes, this is a sign of cowardice around a
    user-visibile change.
    
    Hoist all of the 32-bit limitations into kvm_vcpu_init_check_features()
    to avoid nested attempts to acquire the config_lock, which won't end
    well.
    
    Link: https://lore.kernel.org/r/20230609190054.1542113-4-oliver.upton@linux.devSigned-off-by: default avatarOliver Upton <oliver.upton@linux.dev>
    2251e9ff
reset.c 9.13 KB