[PATCH v3 0/4] KVM: arm64: Fix get-reg-list regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



张东旭 <xu910121@xxxxxxxx> reported a regression seen with CentOS
when migrating from an old kernel to a new one. The problem was
that QEMU rejected the migration since KVM_GET_REG_LIST reported
a register was missing on the destination. Extra registers are OK
on the destination, but not missing ones. The regression reproduces
with upstream kernels when migrating from a 4.15 or later kernel,
up to one with commit 73433762fcae ("KVM: arm64/sve: System register
context switch and access support"), to a kernel that includes that
commit, e.g. the latest mainline (5.10-rc2).

The first patch of this series is the fix. The next two patches,
which don't have any intended functional changes, allow ID_SANITISED
to be used for registers that flip between exposing features and
being RAZ, which allows some code to be removed.

v3:
 - Improve commit messages [Dave]
 - Add new patch to consolidate REG_HIDDEN* flags [Dave]

v2:
 - CC stable [Marc]
 - Only one RAZ flag is enough [Marc]
 - Move id_visibility() up by read_id_reg() since they'll likely
   be maintained together [drew]


Andrew Jones (4):
  KVM: arm64: Don't hide ID registers from userspace
  KVM: arm64: Consolidate REG_HIDDEN_GUEST/USER
  KVM: arm64: Check RAZ visibility in ID register accessors
  KVM: arm64: Remove AA64ZFR0_EL1 accessors

 arch/arm64/kvm/sys_regs.c | 108 ++++++++++++--------------------------
 arch/arm64/kvm/sys_regs.h |  16 +++---
 2 files changed, 41 insertions(+), 83 deletions(-)

-- 
2.26.2

_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm




[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux