|
|
Message-ID: <20260823140856.GJ23438@brightrain.aerifal.cx> Date: Sun, 23 Aug 2026 10:08:57 -0400 From: Rich Felker <dalias@...c.org> To: Jonas Böttiger <jonasboettiger@...oud.com> Cc: musl@...ts.openwall.com, "AWilcox@...cox-tech.com" <AWilcox@...cox-Tech.com>, jason@...c4.com Subject: Re: vDSO-based getrandom On Sun, Aug 23, 2026 at 03:38:52PM +0200, Jonas Böttiger wrote: > > It looks like using it requires a bit of a headache of managing > > allocation of memory and thread-local state (altho maybe you can > > decline to use that and just put a lock around it?), rather than just > > being a single vdso entry point. This may be better in some ways, but > > it means if we want to use it and also want to solve the problem of > > supporting old kernels (missing now), we now have 2 nontrivial code > > paths on top of the plain syscall one. > > Yeah, it's definitely more complicated than the clock_gettime > acceleration. The per-thread stuff is probably required to preserve > the async-signal-safety of getrandom, but the opaque-state caching > can probably be avoided at the cost of just a bit of extra memory. Is the vdso approach even reentrant/AS-safe? It seems like that would be difficult. How does it deal with a situation where a signal interrupts execution, and the signal handler then calls back into getrandom? If I were doing this in userspace as the fallback implementation for kernels that lack SYS_getrandom, rather than as a performance enhancement like the vdso is aiming for, I would just block signals across the critical section and use a global lock. But I think it's good that this topic came up, as it sheds light on "userspace csprng for performance" and "userspace csprng for fallback" might have very different requirements. For what it's worth, POSIX getentropy is not specified to be AS-safe. So maybe we don't even care about that. It's a matter of whether the Linux getrandom is intended/assumed to be... Rich
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.