All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sean Christopherson <seanjc@google.com>
To: Yosry Ahmed <yosry@kernel.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	Jim Mattson <jmattson@google.com>,
	 Dapeng Mi <dapeng1.mi@linux.intel.com>,
	Sandipan Das <sandipan.das@amd.com>,
	 Peter Zijlstra <peterz@infradead.org>,
	Ingo Molnar <mingo@redhat.com>,
	 Arnaldo Carvalho de Melo <acme@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	 Mark Rutland <mark.rutland@arm.com>,
	 Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	kvm@vger.kernel.org,  linux-kernel@vger.kernel.org
Subject: Re: [PATCH v7 15/17] KVM: selftests: Allocate a dedicated guest page for x86 L2 guest stack
Date: Thu, 28 May 2026 11:01:38 -0700	[thread overview]
Message-ID: <ahiDAiyU6M2iNJJH@google.com> (raw)
In-Reply-To: <CAO9r8zNw+iFdZn3uE6p7cCZYVPNeBxAwKhGtKgTErWQ3WL9tWw@mail.gmail.com>

On Thu, May 28, 2026, Yosry Ahmed wrote:
> On Wed, May 27, 2026 at 7:56 PM Sean Christopherson <seanjc@google.com> wrote:
> >
> > On Wed, May 27, 2026, Yosry Ahmed wrote:
> > > Instead of relying on the L1-provided stack for L2, which is usually an
> > > array on L1's own stack, allocate a dedicated page of VM memory for the
> > > L2 stack in vcpu_alloc_{vmx/svm}() and use that as L2's RSP in the
> > > VMCS/VMCB instead of the L1-provided value.
> > >
> > > Most L1 guest code does not do anything with the L2 stack other than
> > > stuff it in RSP, so this change is transparent and the L1-provided stack
> > > is silently ignored. The only exception is memstress nested L1 code
> > > which puts the vCPU index on L2's stack, so update this code to use the
> > > newly allocated stack.
> > >
> > > L1-provided stacks will be dropped and cleaned up separately.
> > >
> > > Suggested-by: Sean Christopherson <seanjc@google.com>
> > > Signed-off-by: Yosry Ahmed <yosry@kernel.org>
> > > ---
> >
> > Blech.  This exposed a nasty edge in selftests.  For tests that enable TDP, the
> > slots need to be identity mapped *after* allocating SVM/VMX.  Found out the hard
> > way: the gPAT test starting failing.
> >
> > Not worth worrying about right now, just one more wart in selftests that needs
> > to be cleaned up.
> 
> I would squash that diff below to the gPAT test rather than this
> patch, but up to you.

Ya, that's the plan.

> Generally speaking, the tdp_identity_map_default_memslots() API sucks.
> It has to be called after all mappings/allocations are done, which is
> soooo user unfriendly and when it breaks it takes time to figure out
> what's going on.
> 
> I think it should go away. Ideally either:
> (a) When TDP is enabled in the VM, tdp_identity_map_default_memslots()
> is called, and then every time we create a new mapping in the VM we
> mirror it in TDP page tables.
> 
> (b) Every time we update guest mappings, we mark the TDP page tables
> as "out of sync", and we "resync" on vCPU run as needed.
> 
> Either way, it is not as straightforward as just calling
> tdp_identity_map_default_memslots(), because the current code reuses
> the same logic as stage-1 mappings, and it fails if there's already a
> PTE. So consecutive calls will fail if they try to map the whole thing
> -- unless we free all TDP page tables first.
> 
> I don't think I have time to spend on this right now, mainly
> documenting my thoughts, and putting this out here in case you (or
> anyone else) has enough hatred for the API to go do this before I get
> the time to.

We're on the same page, this probably doesn't even crack my Top 10 list of things
I want to fix in selftests.  Ok, it's probably in the Top 10, but not the Top 5.

I responded on-list mostly to point out the problem in case someone else happens
to have in-flight code that will be affected.


  reply	other threads:[~2026-05-28 18:01 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-27 23:46 [PATCH v7 00/17] KVM: x86/pmu: Add support for AMD Host-Only/Guest-Only bits Yosry Ahmed
2026-05-27 23:46 ` [PATCH v7 01/17] KVM: nSVM: Stop leaking single-stepping on VMRUN into L2 Yosry Ahmed
2026-05-27 23:46 ` [PATCH v7 02/17] KVM: nSVM: Bail early out of VMRUN emulation if advancing RIP fails Yosry Ahmed
2026-05-27 23:46 ` [PATCH v7 03/17] KVM: nSVM: Unify RIP and PMU handling calls when emulating VMRUN Yosry Ahmed
2026-05-27 23:46 ` [PATCH v7 04/17] KVM: nSVM: Move VMRUN instruction retirement after entering guest mode Yosry Ahmed
2026-05-27 23:46 ` [PATCH v7 05/17] KVM: x86: Move enable_pmu/enable_mediated_pmu to pmu.h and pmu.c Yosry Ahmed
2026-05-27 23:47 ` [PATCH v7 06/17] KVM: x86/pmu: Rename reprogram_counters() to clarify usage Yosry Ahmed
2026-05-27 23:47 ` [PATCH v7 07/17] KVM: x86/pmu: Do a single atomic OR when reprogramming counters Yosry Ahmed
2026-05-27 23:47 ` [PATCH v7 08/17] KVM: x86/pmu: Check mediated PMU counter enablement before event filters Yosry Ahmed
2026-05-28  0:54   ` sashiko-bot
2026-05-30  0:35     ` Sean Christopherson
2026-05-27 23:47 ` [PATCH v7 09/17] KVM: x86/pmu: Add support for KVM_X86_PMU_OP_OPTIONAL_RET0 Yosry Ahmed
2026-05-27 23:47 ` [PATCH v7 10/17] KVM: x86/pmu: Disable counters based on Host-Only/Guest-Only bits in SVM Yosry Ahmed
2026-05-28  0:34   ` sashiko-bot
2026-05-28  1:43     ` Sean Christopherson
2026-05-27 23:47 ` [PATCH v7 11/17] KVM: x86/pmu: Track mediated PMU counters with mode-specific enables Yosry Ahmed
2026-05-28  0:45   ` sashiko-bot
2026-05-27 23:47 ` [PATCH v7 12/17] KVM: x86/pmu: Reprogram Host/Guest-Only counters on nested transitions Yosry Ahmed
2026-05-27 23:47 ` [PATCH v7 13/17] KVM: x86/pmu: Allow Host-Only/Guest-Only bits with nSVM and mediated PMU Yosry Ahmed
2026-05-27 23:47 ` [PATCH v7 14/17] KVM: selftests: Refactor allocating guest stack into a helper Yosry Ahmed
2026-05-27 23:47 ` [PATCH v7 15/17] KVM: selftests: Allocate a dedicated guest page for x86 L2 guest stack Yosry Ahmed
2026-05-28  2:56   ` Sean Christopherson
2026-05-28 17:58     ` Yosry Ahmed
2026-05-28 18:01       ` Sean Christopherson [this message]
2026-05-28 18:03         ` Yosry Ahmed
2026-05-27 23:47 ` [PATCH v7 16/17] KVM: selftests: Drop L1-provided stacks for L2 guests on x86 Yosry Ahmed
2026-05-27 23:47 ` [PATCH v7 17/17] KVM: selftests: Add svm_pmu_host_guest_test for Host-Only/Guest-Only bits Yosry Ahmed
2026-05-28  2:25   ` Sean Christopherson
2026-05-28 18:01     ` Yosry Ahmed
2026-05-28 18:04       ` Sean Christopherson
2026-05-28 18:15         ` Jim Mattson
2026-05-28  2:27 ` [PATCH v7 00/17] KVM: x86/pmu: Add support for AMD " Sean Christopherson
2026-05-28 18:02   ` Yosry Ahmed
2026-05-28 18:05     ` Sean Christopherson
2026-05-28  8:30 ` Mi, Dapeng
2026-05-28 18:01   ` Yosry Ahmed
2026-05-29 22:47 ` Sean Christopherson

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=ahiDAiyU6M2iNJJH@google.com \
    --to=seanjc@google.com \
    --cc=acme@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=dapeng1.mi@linux.intel.com \
    --cc=jmattson@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=sandipan.das@amd.com \
    --cc=yosry@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.