• Oliver Upton's avatar
    Merge branch kvm-arm64/configurable-id-regs into kvmarm/next · 89a734b5
    Oliver Upton authored
    * kvm-arm64/configurable-id-regs:
      : Configurable ID register infrastructure, courtesy of Jing Zhang
      :
      : Create generalized infrastructure for allowing userspace to select the
      : supported feature set for a VM, so long as the feature set is a subset
      : of what hardware + KVM allows. This does not add any new features that
      : are user-configurable, and instead focuses on the necessary refactoring
      : to enable future work.
      :
      : As a consequence of the series, feature asymmetry is now deliberately
      : disallowed for KVM. It is unlikely that VMMs ever configured VMs with
      : asymmetry, nor does it align with the kernel's overall stance that
      : features must be uniform across all cores in the system.
      :
      : Furthermore, KVM incorrectly advertised an IMP_DEF PMU to guests for
      : some time. Migrations from affected kernels was supported by explicitly
      : allowing such an ID register value from userspace, and forwarding that
      : along to the guest. KVM now allows an IMP_DEF PMU version to be restored
      : through the ID register interface, but reinterprets the user value as
      : not implemented (0).
      KVM: arm64: Rip out the vestiges of the 'old' ID register scheme
      KVM: arm64: Handle ID register reads using the VM-wide values
      KVM: arm64: Use generic sanitisation for ID_AA64PFR0_EL1
      KVM: arm64: Use generic sanitisation for ID_(AA64)DFR0_EL1
      KVM: arm64: Use arm64_ftr_bits to sanitise ID register writes
      KVM: arm64: Save ID registers' sanitized value per guest
      KVM: arm64: Reuse fields of sys_reg_desc for idreg
      KVM: arm64: Rewrite IMPDEF PMU version as NI
      KVM: arm64: Make vCPU feature flags consistent VM-wide
      KVM: arm64: Relax invariance of KVM_ARM_VCPU_POWER_OFF
      KVM: arm64: Separate out feature sanitisation and initialisation
    Signed-off-by: default avatarOliver Upton <oliver.upton@linux.dev>
    89a734b5
sys_regs.c 94.9 KB