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.

Reply via email to