From: Vincenzo Frascino <vincenzo.frascino@arm.com>
To: "Jason A. Donenfeld" <Jason@zx2c4.com>
Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
linux-mm@kvack.org, Andy Lutomirski <luto@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Michael Ellerman <mpe@ellerman.id.au>,
Nicholas Piggin <npiggin@gmail.com>,
Naveen N Rao <naveen@kernel.org>, Ingo Molnar <mingo@redhat.com>,
Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
"H . Peter Anvin" <hpa@zytor.com>, Theodore Ts'o <tytso@mit.edu>,
Arnd Bergmann <arnd@arndb.de>,
Andrew Morton <akpm@linux-foundation.org>,
Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Subject: Re: [PATCH v2 1/8] x86: vdso: Introduce asm/vdso/mman.h
Date: Tue, 24 Sep 2024 16:10:32 +0100 [thread overview]
Message-ID: <9c1d96d4-61ca-4e27-9d67-8c194cd7770d@arm.com> (raw)
In-Reply-To: <ZvH0PdVy5jJN3VTt@zx2c4.com>
Hi Jason,
Thank you for your review.
On 24/09/2024 00:05, Jason A. Donenfeld wrote:
> Hi,
>
> I have the feeling I said this in the last two revisions, but maybe I
> just thought it or agreed with somebody else who typed it but never
> typed it myself, so now I'm typing it in no uncertain terms.
>
This is the second revision, I am not sure to which other two revisions you are
referring to. Anyway if I missed your suggestion, I apologize.
> On Mon, Sep 23, 2024 at 03:19:36PM +0100, Vincenzo Frascino wrote:
>> +#define VDSO_MMAP_PROT PROT_READ | PROT_WRITE
>> +#define VDSO_MMAP_FLAGS MAP_DROPPABLE | MAP_ANONYMOUS
>
> No, absolutely not. This is nonsense. Those flags aren't "the vdso
> flags" or something. The variable name makes no sense. Moving the
> definition outside of getrandom.c like the next patch does also makes no
> sense. Do not do this.
>
> If you need to, for some reason, rename those symbols, then rename them
> each to VDSO_MAP_ANONYMOUS or whatever, and then use those from within
> getrandom.c so it remains as readable and reasonable as it currently is.
>
> But under no circumstances should you move where this is expressed and
> rename it something generic like "vdso flags", when it is not generic
> but rather very specific to the function where it is currently used.
> IOW, please take a look and try to understand the code that you're
> touching when proposing changes like this.
>
>
> Also, though, I don't quite see what this patch accomplishes. If you're
> fine doing #include <notvdso/whatever.h> into here, importing this
> header into vdso code will transitively include notvdso/whatever.h with
> it. So in that case, either we can keep using MAP_ANONYMOUS and whatnot
> in the original sane symbol names, or this approach isn't correct in the
> first place.
>
> Maybe what you want instead is a simpler vdso/whatever.h header that
> just includes nonvdso/whatever.h, and then you let getrandom.c and other
> things keep using the same symbols as they were using before.
>
In past we had a problem with compiling vDSOs on certain architectures.
Since then:
- The generic vDSO library can include only the common denominator of the
headers required to build the library on all the architectures that support it.
- The headers must come from the vdso/ namespace only (with rare documented
exceptions).
- The generic vDSO library does not mandate how an architecture organizes its
headers or provides the required symbols.
Based on this it is not fine to include directly "notvdso/whatever.h" into
"vdso/whatever.h" because a future change to first might work on one
architecture but might break another one.
To the naming problem: I agree, maybe the naming is not self explanatory and
might need some comments to clarify its purpose.
The reasons why I introduced an extra indirection are the following:
- Allow the architecture to decide if it wants to include directly mman.h or
not. As it was discussed already [1] a future update might cause problems (Note:
for x86 I honored your original strategy).
- A future architecture might need different prot/flags.
[1]
https://lore.kernel.org/lkml/cb66b582-ba63-4a5a-9df8-b07288f1f66d@app.fastmail.com/
I am open to suggestions on what's your preference to address the problem. Let
me know your thoughts.
> Jason
--
Regards,
Vincenzo
next prev parent reply other threads:[~2024-09-24 15:10 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-23 14:19 [PATCH v2 0/8] vdso: Use only headers from the vdso/ namespace Vincenzo Frascino
2024-09-23 14:19 ` [PATCH v2 1/8] x86: vdso: Introduce asm/vdso/mman.h Vincenzo Frascino
2024-09-23 23:05 ` Jason A. Donenfeld
2024-09-24 15:10 ` Vincenzo Frascino [this message]
2024-09-25 6:51 ` Christophe Leroy
2024-09-25 21:23 ` Arnd Bergmann
2024-09-26 5:51 ` Christophe Leroy
2024-09-26 6:20 ` Arnd Bergmann
2024-09-27 13:09 ` Vincenzo Frascino
2024-09-23 14:19 ` [PATCH v2 2/8] arm64: " Vincenzo Frascino
2024-09-25 6:52 ` Christophe Leroy
2024-09-23 14:19 ` [PATCH v2 3/8] vdso: Introduce vdso/mman.h Vincenzo Frascino
2024-09-25 6:54 ` Christophe Leroy
2024-09-23 14:19 ` [PATCH v2 4/8] vdso: Introduce vdso/page.h Vincenzo Frascino
2024-09-23 16:54 ` Arnd Bergmann
2024-09-24 14:10 ` Vincenzo Frascino
2024-09-24 14:28 ` Christophe Leroy
2024-09-24 14:32 ` Vincenzo Frascino
2024-09-25 6:56 ` Christophe Leroy
2024-09-23 14:19 ` [PATCH v2 5/8] x86: vdso: Modify asm/vdso/getrandom.h to include datapage Vincenzo Frascino
2024-09-25 6:57 ` Christophe Leroy
2024-09-23 14:19 ` [PATCH v2 6/8] vdso: Modify vdso/getrandom.h to include the asm header Vincenzo Frascino
2024-09-25 6:58 ` Christophe Leroy
2024-09-23 14:19 ` [PATCH v2 7/8] vdso: Introduce uapi/vdso/random.h Vincenzo Frascino
2024-09-23 23:09 ` Jason A. Donenfeld
2024-09-24 15:14 ` Vincenzo Frascino
2024-09-25 7:00 ` Christophe Leroy
2024-09-23 14:19 ` [PATCH v2 8/8] vdso: Modify getrandom to include the correct namespace Vincenzo Frascino
2024-09-23 23:11 ` Jason A. Donenfeld
2024-09-25 7:09 ` Christophe Leroy
2024-09-25 6:39 ` [PATCH v2 0/8] vdso: Use only headers from the vdso/ namespace Christophe Leroy
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=9c1d96d4-61ca-4e27-9d67-8c194cd7770d@arm.com \
--to=vincenzo.frascino@arm.com \
--cc=Jason@zx2c4.com \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=bp@alien8.de \
--cc=christophe.leroy@csgroup.eu \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=luto@kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=naveen@kernel.org \
--cc=npiggin@gmail.com \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
--cc=tytso@mit.edu \
/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
all inboxes | Powered by JetHome®