Linux Documentation
 help / color / mirror / Atom feed
From: Tim Wiederhake <twiederh@redhat.com>
To: Sean Christopherson <seanjc@google.com>
Cc: Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	 "H. Peter Anvin"	 <hpa@zytor.com>,
	Ingo Molnar <mingo@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
	 kvm@vger.kernel.org, linux-doc@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	 Paolo Bonzini <pbonzini@redhat.com>,
	Shuah Khan <skhan@linuxfoundation.org>,
	Thomas Gleixner <tglx@kernel.org>,
	 x86@kernel.org
Subject: Re: [PATCH 0/4] KVM: x86: Document and enforce APIC base memory hole
Date: Fri, 10 Jul 2026 10:02:06 +0200	[thread overview]
Message-ID: <fcc4455b1272433bd04ea1f774b5ecd180823795.camel@redhat.com> (raw)
In-Reply-To: <ak_cqiwZwNBEhRNj@google.com>

On Thu, 2026-07-09 at 10:38 -0700, Sean Christopherson wrote:
> On Wed, Jul 08, 2026, Tim Wiederhake wrote:
> > On Wed, 2026-07-08 at 06:41 -0700, Sean Christopherson wrote:
> > > On Wed, Jul 08, 2026, Tim Wiederhake wrote:
> > > > On Mon, 2026-07-06 at 15:26 -0700, Sean Christopherson wrote:
> > > > > On Mon, Jul 06, 2026, Tim Wiederhake wrote:
> > > > > > When an in-kernel irqchip is enabled on x86, KVM installs a
> > > > > > private
> > > > > > memory slot at the default APIC base address (0xfee00000)
> > > > > > during vcpu
> > > > > > creation.  If user space has already mapped a memory region
> > > > > > covering
> > > > > > that address, vcpu creation fails with -EEXIST.  The same
> > > > > > happens in
> > > > > > reverse: mapping memory over the APIC base after vcpu
> > > > > > creation also
> > > > > > fails with -EEXIST.
> > > > > > 
> > > > > > None of this is documented, and the error is reported far
> > > > > > from where
> > > > > > the actual conflict is introduced.  A VMM developer hitting
> > > > > > this has
> > > > > > to trace through KVM internals to understand what went
> > > > > > wrong.
> > > > > I'm 100% in favor of documenting the behavior, but I'm not
> > > > > exactly
> > > > > excited about the enforcement.
> 
> ...
> 
> > > > FWIW, I did run into this exact issue myself and debugging it
> > > > was
> > > 
> > > What were you doing (or trying to do?) when you ran afoul of
> > > this?  I ask
> > > because maybe there's a way to help developers without impacting
> > > KVM's
> > > uABI.
> > 
> > Experimenting, mostly with pmode code. 
> 
> "pmode" being Protected Mode?  Or something else?
> 
Yes, Protected Mode.

> > For simplicity, I use a single memory slot at 0x0. Due to an off-
> > by-one
> > error, I gave the VM only 2 GB instead of 4 GB as intended. When I
> > fixed
> > that, suddenly vcpu creation failed.
> 
> Heh, fun.  I don't think there's a good answer here.  Or rather, I
> don't think
> there's an answer that you'll find satisfying.  "Unintentionally"
> creating a
> memslot that overlaps the PCI hole and the RESET vector is always
> going to end
> in tears unless VMM and the guest are doing very special things. 
> I.e. not
> covering up the local APIC base is so foundational that trying to
> guard against
> it in KVM isn't worthwhile, because such a goof is just the tip of
> the iceberg.

I noticed :). And I learned a lot from the experience, which made it
worthwhile. But I'd love to make the experience less painful for the
next person, hence v2 that puts up some warning signs in the docs:
 
https://lore.kernel.org/kvm/20260708133856.302151-1-twiederh@redhat.com/


      reply	other threads:[~2026-07-10  8:02 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-06  9:20 [PATCH 0/4] KVM: x86: Document and enforce APIC base memory hole Tim Wiederhake
2026-07-06  9:20 ` [PATCH 1/4] KVM: x86: Document that KVM_CREATE_IRQCHIP must precede vcpu creation Tim Wiederhake
2026-07-06 23:22   ` Sean Christopherson
2026-07-06  9:20 ` [PATCH 2/4] KVM: x86: Document APIC base address constraint for in-kernel irqchip Tim Wiederhake
2026-07-06 23:32   ` Sean Christopherson
2026-07-06 15:21 ` [syzbot ci] Re: KVM: x86: Document and enforce APIC base memory hole syzbot ci
2026-07-06 22:26 ` [PATCH 0/4] " Sean Christopherson
2026-07-08 13:34   ` Tim Wiederhake
2026-07-08 13:41     ` Sean Christopherson
2026-07-08 19:48       ` Tim Wiederhake
2026-07-09 17:38         ` Sean Christopherson
2026-07-10  8:02           ` Tim Wiederhake [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=fcc4455b1272433bd04ea1f774b5ecd180823795.camel@redhat.com \
    --to=twiederh@redhat.com \
    --cc=bp@alien8.de \
    --cc=corbet@lwn.net \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=skhan@linuxfoundation.org \
    --cc=tglx@kernel.org \
    --cc=x86@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox