Re: [PATCH v3 0/5] KVM: arm64: fix VGICv3 redistributor rollback
Fuad Tabba <[email protected]>
| Newsgroups | dev.linux.lists.kvmarm,org.infradead.lists.linux-arm-kernel,org.kernel.vger.kvm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest |
|---|---|
| Message-ID | <CA+EHjTwcJ7zvw5bgqmt2-OiW7q01Vwm3rn1gTFn-39Lu4qDWJg@mail.gmail.com> |
Hi Karl, On Sat, 22 Aug 2026 at 10:53, Karl Mehltretter <[email protected]> wrote: ... > Testing: built the patched kernel and the arm64 vgic_init selftest with > GCC 13.3.0 in an arm64 Linux container. The selftest passed under QEMU > 11.0.2 TCG with -machine virt,virtualization=on,gic-version=3 and -cpu max. Applied this on kvmarm/next: protected and non-protected guest boots under pKVM, plus VHE and nVHE, and the vgic_init, vgic_irq and vgic_lpi_stress selftest. Also built the base with only patches 4-5 and confirmed the new test fails without patches 1-3. Reviewed-by: Fuad Tabba <[email protected]> Tested-by: Fuad Tabba <[email protected]> Cheers, /fuad > --- > Changes since v2: > - Patch 1: limit free_index rollback to the immediate registration failure > under slots_lock instead of generic unregistration. (Sashiko) > - Patch 2: reset all assignments and region counters after a failed region > update (Marc), and serialize REDIST and REDIST_REGION writes with vCPU > creation so rollback cannot miss an unpublished assignment. > - Patch 3: add an already-locked unassignment primitive, move failed-vCPU > cleanup to kvm_vgic_vcpu_destroy(), and remove the redundant base_addr > reset. (Marc) > - Patch 4: match vm_create_with_vcpus() by using void * for the guest-code > argument. (Sashiko) > - Patch 5: document how the first three redistributors span regions 0 > and 1; no functional change. > > Previous version: > v2: https://lore.kernel.org/r/[email protected] > > Karl Mehltretter (5): > KVM: arm64: vgic-v3: Undo assignment on iodev registration failure > KVM: arm64: vgic-v3: Reset redistributors after failed region setup > KVM: arm64: vgic-v3: Separate redistributor teardown from unassignment > KVM: arm64: selftests: Pass guest code to vm_gic_create_with_vcpus() > KVM: arm64: selftests: Test VGICv3 redistributor region retry > > arch/arm64/kvm/vgic/vgic-init.c | 46 +++---- > arch/arm64/kvm/vgic/vgic-kvm-device.c | 20 +++ > arch/arm64/kvm/vgic/vgic-mmio-v3.c | 83 ++++++++----- > arch/arm64/kvm/vgic/vgic.h | 1 + > tools/testing/selftests/kvm/arm64/vgic_init.c | 116 ++++++++++++++++-- > 5 files changed, 200 insertions(+), 66 deletions(-) > > > base-commit: 57e7cf13ac26bf1a3dba6cfa601f7b2481811575 > -- > 2.39.5 (Apple Git-154)