From: Naveen N Rao <naveen@kernel.org>
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
kvm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] KVM: SVM: Drop unnecessary avic_vm_destroy() call on init failure
Date: Fri, 3 Jul 2026 21:51:59 +0530 [thread overview]
Message-ID: <akffsFoCvlyz5y9S@blrnaveerao1> (raw)
In-Reply-To: <akMLDayXmzhmvJBG@google.com>
On Mon, Jun 29, 2026 at 05:17:17PM -0700, Sean Christopherson wrote:
> On Mon, Jun 29, 2026, Naveen N Rao wrote:
> > On Thu, Jun 25, 2026 at 03:09:33PM -0700, Sean Christopherson wrote:
> > > Don't bother calling avic_vm_destroy() when allocating the logical ID table
> > > fails, as there is nothing to clean up now that the physical ID table is
> > > allocated later, on-demand at first vCPU creation.
> > >
> > > For all intents and purposes, no functional change intended, as calling
> > > avic_vm_destroy() is a big nop in this case.
> > >
> > > Fixes: 54ffe74cc4ab ("KVM: SVM: Move AVIC Physical ID table allocation to vcpu_precreate()")
> > > Cc: Naveen N Rao (AMD) <naveen@kernel.org>
> > > Signed-off-by: Sean Christopherson <seanjc@google.com>
> > > ---
> > > arch/x86/kvm/svm/avic.c | 7 +------
> > > 1 file changed, 1 insertion(+), 6 deletions(-)
> >
> > This LGTM, though I'm not sure this deserves a fixes tag.
>
> Yeah, it's borderline. Because KVM (x86) doesn't do AUTOSEL, i.e. requires an
> explicit "Cc: stable@vger.kernel.org" for the vast majority of cases, we can be
> very liberal with Fixes. And so I like to use Fixes to create a paper trail for
> anything where a commit did something that would have necessitate a new version
> of the patch, had it been caught in code review.
Ah, that's the reason for preferring Fixes: tag over Cc: stable, got it.
>
> > FWIW, I have had a patch (part of a larger series I am going to post
> > soon) to move the logical_id_table allocation alongside the physical ID
> > table allocation. I'm fine if you want to queue your patch first, but
> > this is what I have locally:
>
> Ah shoot, I should have read this mail earlier. While floundering around, trying
> to figure out how to deal with kvm_arch_pre_destroy_vm() not being called when
> VM creation fails after kvm_arch_init_vm(), I ended up with the same idea, though
> I moved *all* of avic_vm_init() to the vCPU-precreate phase. Because what I
> needed was to defer adding the VM to the GA Log list until the VM is fully
> created.
>
> > @@ -303,10 +303,16 @@ int avic_alloc_physical_id_table(struct kvm *kvm)
> > if (kvm_svm->avic_physical_id_table)
> > return 0;
> >
> > + kvm_svm->avic_logical_id_table = (void *)get_zeroed_page(GFP_KERNEL_ACCOUNT);
> > + if (!kvm_svm->avic_logical_id_table)
> > + return -ENOMEM;
> > +
> > kvm_svm->avic_physical_id_table = (void *)__get_free_pages(GFP_KERNEL_ACCOUNT | __GFP_ZERO,
> > avic_get_physical_id_table_order(kvm));
> > - if (!kvm_svm->avic_physical_id_table)
> > + if (!kvm_svm->avic_physical_id_table) {
> > + free_page((unsigned long)kvm_svm->avic_logical_id_table);
>
> Freeing the page on failure is "wrong". To keep vCPU creation idempotent from
> userspace's perspective (well, not truly idempotent, but close-ish), KVM
> deliberately doesn't unwind if .vcpu_precreate() fails. E.g. so that if
> allocating the tables succeeds, but a later stage of vCPU creation fails,
> subsequent calls to create vCPUs won't fail at the earlier stage.
>
> The nice thing is that since the VM has already been created, there's no need to
> every unwind on failure, because it's no different than if KVM had successfully
> allocate the assets during VM creation.
Understood - I see there is a comment about this in
kvm_arch_vcpu_precreate() which I missed. Thanks for the details!
- Naveen
prev parent reply other threads:[~2026-07-03 16:27 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-25 22:09 [PATCH 0/2] KVM: SVM: Fix a (very) unlikely UAF for GA Log IRQs Sean Christopherson
2026-06-25 22:09 ` [PATCH 1/2] KVM: SVM: Remove VM from the GA Log notifier list before VM destruction Sean Christopherson
2026-06-25 22:09 ` [PATCH 2/2] KVM: SVM: Drop unnecessary avic_vm_destroy() call on init failure Sean Christopherson
2026-06-29 13:27 ` Naveen N Rao
2026-06-30 0:17 ` Sean Christopherson
2026-07-03 16:21 ` Naveen N Rao [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=akffsFoCvlyz5y9S@blrnaveerao1 \
--to=naveen@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox