From: Steven Rostedt <rostedt@goodmis.org>
To: Alexander Graf <graf@amazon.com>
Cc: <linux-kernel@vger.kernel.org>,
<linux-trace-kernel@vger.kernel.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Andrew Morton <akpm@linux-foundation.org>,
Vincent Donnefort <vdonnefort@google.com>,
"Joel Fernandes" <joel@joelfernandes.org>,
Daniel Bristot de Oliveira <bristot@redhat.com>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>, <suleiman@google.com>,
Thomas Gleixner <tglx@linutronix.de>,
Vineeth Pillai <vineeth@bitbyteword.org>,
Youssef Esmat <youssefesmat@google.com>,
Beau Belgrave <beaub@linux.microsoft.com>,
"Baoquan He" <bhe@redhat.com>, Borislav Petkov <bp@alien8.de>,
"Paul E. McKenney" <paulmck@kernel.org>,
David Howells <dhowells@redhat.com>,
Mike Rapoport <rppt@kernel.org>, Ard Biesheuvel <ardb@kernel.org>
Subject: Re: [PATCH v6 0/2] mm/memblock: Add "reserve_mem" to reserved named memory at boot up
Date: Mon, 17 Jun 2024 17:18:13 -0400 [thread overview]
Message-ID: <20240617171813.77bae9b2@rorschach.local.home> (raw)
In-Reply-To: <049b2e0f-00b2-4704-8868-1569a006a134@amazon.com>
On Mon, 17 Jun 2024 23:01:12 +0200
Alexander Graf <graf@amazon.com> wrote:
> > This could be an added feature, but it is very architecture specific,
> > and would likely need architecture specific updates.
>
>
> It definitely would be an added feature, yes. But one that allows you to
> ensure persistence a lot more safely :).
Sure.
>
> Thinking about it again: What if you run the allocation super early (see
> arch/x86/boot/compressed/kaslr.c:handle_mem_options())? If you stick to
> allocating only from top, you're effectively kernel version independent
> for your allocations because none of the kernel code ran yet and
> definitely KASLR independent because you're running deterministically
> before KASLR even gets allocated.
>
> > As this code relies on memblock_phys_alloc() being consistent, if
> > something gets allocated before it differently depending on where the
> > kernel is, it can also move the location. A plugin to UEFI would mean
> > that it would need to reserve the memory, and the code here will need
> > to know where it is. We could always make the function reserve_mem()
> > global and weak so that architectures can override it.
>
>
> Yes, the in-kernel UEFI loader (efi-stub) could simply populate a new
> type of memblock with the respective reservations and you later call
> memblock_find_in_range_node() instead of memblock_phys_alloc() to pass
> in flags that you want to allocate only from the new
> MEMBLOCK_RESERVE_MEM type. The same model would work for BIOS boots
> through the handle_mem_options() path above. In fact, if the BIOS way
> works fine, we don't even need UEFI variables: The same way allocations
> will be identical during BIOS execution, they should stay identical
> across UEFI launches.
>
> As cherry on top, kexec also works seamlessly with the special memblock
> approach because kexec (at least on x86) hands memblocks as is to the
> next kernel. So the new kernel will also automatically use the same
> ranges for its allocations.
I'm all for expanding this. But I would just want to get this in for
now as is. It theoretically works on all architectures. If someone
wants to make in more robust and accurate on a specific architecture,
I'm all for it. Like I said, we could make the reserver_mem() function
global and weak, and then if an architecture has a better way to handle
this, it could use that.
Hmm, x86 could do this with the e820 code like I did in my first
versions. Like I said, it didn't fail at all with that.
And we can have an UEFI version as well.
-- Steve
next prev parent reply other threads:[~2024-06-17 21:18 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-13 15:55 [PATCH v6 0/2] mm/memblock: Add "reserve_mem" to reserved named memory at boot up Steven Rostedt
2024-06-13 15:55 ` [PATCH v6 1/2] " Steven Rostedt
2024-06-18 12:55 ` Zhengyejian
2024-06-18 16:06 ` Steven Rostedt
2024-06-19 6:42 ` Mike Rapoport
2024-06-13 15:55 ` [PATCH v6 2/2] pstore/ramoops: Add ramoops.mem_name= command line option Steven Rostedt
2024-06-13 18:19 ` Guilherme G. Piccoli
2024-06-13 18:42 ` Steven Rostedt
2024-06-13 18:51 ` Guilherme G. Piccoli
2024-06-13 16:54 ` [PATCH v6 0/2] mm/memblock: Add "reserve_mem" to reserved named memory at boot up Alexander Graf
2024-06-13 17:12 ` Steven Rostedt
2024-06-17 7:07 ` Alexander Graf
2024-06-17 20:40 ` Steven Rostedt
2024-06-17 21:01 ` Alexander Graf
2024-06-17 21:18 ` Steven Rostedt [this message]
2024-06-18 10:21 ` Ard Biesheuvel
2024-06-18 11:47 ` Alexander Graf
2024-06-18 15:43 ` Steven Rostedt
2024-06-19 8:02 ` Mike Rapoport
2024-06-19 21:53 ` 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=20240617171813.77bae9b2@rorschach.local.home \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=ardb@kernel.org \
--cc=beaub@linux.microsoft.com \
--cc=bhe@redhat.com \
--cc=bp@alien8.de \
--cc=bristot@redhat.com \
--cc=dhowells@redhat.com \
--cc=graf@amazon.com \
--cc=joel@joelfernandes.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=rppt@kernel.org \
--cc=suleiman@google.com \
--cc=tglx@linutronix.de \
--cc=vdonnefort@google.com \
--cc=vineeth@bitbyteword.org \
--cc=youssefesmat@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;
as well as URLs for NNTP newsgroup(s).