All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@kernel.org>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: x86@kernel.org, linux-kernel@vger.kernel.org,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>,
	Ingo Molnar <mingo@redhat.com>, "H . Peter Anvin" <hpa@zytor.com>,
	Thomas Gleixner <tglx@kernel.org>,
	linux-efi@vger.kernel.org, linux-mm@kvack.org,
	stable@vger.kernel.org
Subject: Re: [PATCH] x86/efi: defer freeing of boot services memory
Date: Tue, 24 Feb 2026 11:28:56 +0200	[thread overview]
Message-ID: <aZ1vWEgJNwc2nrrA@kernel.org> (raw)
In-Reply-To: <bfe487fe-6868-4215-b5be-99a0360e9bd2@app.fastmail.com>

On Mon, Feb 23, 2026 at 01:18:41PM +0100, Ard Biesheuvel wrote:
> On Mon, 23 Feb 2026, at 12:40, Mike Rapoport wrote:
> > On Mon, Feb 23, 2026 at 12:17:22PM +0100, Ard Biesheuvel wrote:
> >>
> >> > I wasn't sure it's Ok to only unmap them, but leave in efi.memmap, that's
> >> > why I didn't use the existing EFI memory map.
> >> >
> >> > Now thinking about it, if the unmapping can happen later, maybe we'll just
> >> > move the entire efi_free_boot_services() to an initcall?
> >> 
> >> As long as it is pre-SMP, as that code also contains a quirk to allocate
> >> the real mode trampoline if all memory below 1 MB is used for boot
> >> services.
> >
> > initcall is long after SMP. It the real mode trampoline allocation is the
> > only thing that should happen pre-SMP?
> 
> early_initcall() should be early enough, those run before SMP init.

I don't think so. All initcalls run quite late in boot, early ones just run
before the others.
 
> >> But actually, that should be a separate quirk to begin with, rather than
> >> being integrated into an unrelated function that happens to iterate over
> >> the boot services regions. The only problem, I guess, is that
> >> memblock_reserve()'ing that sub-1MB region in the old location in the
> >> ordinary way would cause it to be freed again in the initcall?
> >
> > Right now we anyway don't free anything below 1M, I don't see why it should
> > change. 
> >
> >> But yes, in general I think it is fine to unmap those regions from the
> >> EFI page tables during an initcall.
> >
> > Thanks for confirming. I'll look into extracting the allocation of the real
> > mode trampoline to a separate quirk and then making the entire
> > efi_free_boot_services() an initcall.

There's another issue with making the entire efi_free_boot_services() an
initcall. It updates efi.memmap without any synchronization and if it'll
run after SMP init, there might be a concurrent access to the efi.memmap.

It seems to me that to be on the safe side the simplest and easiest for
backporting is to stick with my original version. 
 
> Thanks!

-- 
Sincerely yours,
Mike.

  reply	other threads:[~2026-02-24  9:29 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-23  7:52 [PATCH] x86/efi: defer freeing of boot services memory Mike Rapoport
2026-02-23  8:08 ` Ard Biesheuvel
2026-02-23 10:55   ` Mike Rapoport
2026-02-23 11:17     ` Ard Biesheuvel
2026-02-23 11:40       ` Mike Rapoport
2026-02-23 12:18         ` Ard Biesheuvel
2026-02-24  9:28           ` Mike Rapoport [this message]
2026-02-24  9:29             ` Ard Biesheuvel
2026-02-24  9:53               ` Mike Rapoport
2026-02-24  9:56                 ` Mike Rapoport

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=aZ1vWEgJNwc2nrrA@kernel.org \
    --to=rppt@kernel.org \
    --cc=ardb@kernel.org \
    --cc=benh@kernel.crashing.org \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=linux-efi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@redhat.com \
    --cc=stable@vger.kernel.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 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.