Re: [RFC PATCH 1/2] KVM: arm64: vgic-v3: Roll back failed redistributor region setup
Marc Zyngier <[email protected]>
| Newsgroups | org.infradead.lists.linux-arm-kernel,dev.linux.lists.kvmarm,org.kernel.vger.kvm,org.kernel.vger.linux-kernel,org.kernel.vger.linux-kselftest |
|---|---|
| Message-ID | <[email protected]> |
On Thu, 13 Aug 2026 06:57:48 +0100, Karl Mehltretter <[email protected]> wrote: > > On Wed, Aug 12, 2026 at 02:57:07PM +0100, Marc Zyngier wrote: > > On Mon, 10 Aug 2026 22:22:37 +0100, > > Karl Mehltretter <[email protected]> wrote: > > > Is this closer to what you had in mind? > > > > No. I want *all* RDs to be gone on failure, and the next successful > > registration to result in all possible RDs to be matched against a > > vcpu if there are enough of them. Effectively an atomic behaviour from > > the PoV of userspace. > > > > See the patch below for what I came up with. > > > > Understood. I believe your sketch needs two small adjustments: > > free_index must be incremented before kvm_io_bus_register_dev(). > If registration fails, the current vCPU already has an RD assignment, but > there is otherwise no increment for the teardown path to undo. This probably is a separate patch. I don't think it has anything to do with the issue at hand. > > The garbage collection in vgic_v3_free_redist_region() should remain. > VM teardown frees the regions before unregistering the RD iodevs, so > removing it would leave rdreg pointers referring to freed regions. Why is this more than just an ordering change? Probably also a separate patch. > Does that look OK to you? If so, I could include both in v2. > I'll also split the selftest change and have it check only the > final state after the retry. Sure. Thanks, M. -- Without deviation from the norm, progress is not possible.