Re: [PATCH v8 3/3] x86: vdso: Wire up getrandom() vDSO implementation

From: Jason A. Donenfeld
Date: Mon Nov 28 2022 - 15:42:02 EST


Hey again,

On Mon, Nov 28, 2022 at 9:02 PM Jason A. Donenfeld <Jason@xxxxxxxxx> wrote:
>
> Hi Arnd,
>
> On Mon, Nov 28, 2022 at 8:57 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> >
> > On Mon, Nov 28, 2022, at 20:23, Jason A. Donenfeld wrote:
> > > On Mon, Nov 28, 2022 at 08:18:12PM +0100, Arnd Bergmann wrote:
> > >> On Mon, Nov 28, 2022, at 12:18, Jason A. Donenfeld wrote:
> > >
> > > That's more or less how v7 was, but Thomas thought the x86 stuff should
> > > be separate. So for v8, the organization is:
> > >
> > > 1) generic syscall
> > > 2) generic vdso
> > > 3) x86 wiring
> > >
> > > The primary advantage is that future archs wanting to add this now can
> > > just look at commit (3) only, and make a similar commit for that new
> > > arch.
> > >
> > > If you think a different organization outweighs that advantage, can you
> > > spell out what division of patches you want, and I'll do that for v9?
> > > Or maybe this v8 is okay?
> >
> > My interest is that at the end of the series, all architectures
> > are hooked up with the same syscall number, which avoids confusion
> > and merge conflicts when we add the next syscall to all tables.
> >
> > How about one patch to add all the syscall table entries, and then
> > have the x86 specific change just turn on the Kconfig symbol that
> > actually enables the syscall?
>
> Okay, I can split it that way. If I gather your meaning correctly:
>
> 1) generic syscall C code
> 2) #define __NR_... in asm-generic/unistd.h x86/.../unistd.h,
> x86/.../syscall_64.tbl
> 3) generic vdso C code
> 4) hook up x86 vdso, and select the right Kconfig symbol to start
> compiling the code
>
> Is that what you have in mind? If so, I'll name (2) "arch: wire up
> vgetrandom_alloc() syscall number".

Well, I just did this, and it seems clean enough. The result is in:
https://git.zx2c4.com/linux-rng/log/?h=vdso
if you're curious to poke at it ahead of v9.

Jason