Hi Linus, On Tue, Jan 03, 2023 at 11:54:35AM -0800, Linus Torvalds wrote: > So 99% of the time, the solution really is just "getrandom()", > generally with the usual buffering ("read more than you need, so that > you don't do it all the time").\ That buffering cannot be done safely currently -- VM forks, reseeding semantics, and so forth. Again, discussed in the cover letter of the patch if you'd like to engage with those ideas. > just using your own rng in user space entirely. This is the thing that isn't quite safe. > Let me guess: the people you talked to who were excited about this are > mainly just library people? No, actually. Mainly people deploying production network-facing things that need a lot of randomness often. e.g. CBC nonces in TLS, or random sequence numbers in UDP-based protocols. > So when you say that this isn't about micro-optimizations, I really > say "humbug". It's *clearly* about micro-optimization of an area that > very few people care about, since the alternative is just our existing > "getrandom()" that is not at all horribly slow. The alternative is what people currently do, which is attempt to implement a userspace RNG, which cannot be done safely. Again, --> cover letter. > Because the people who actually *use* the random numbers and are *so* > performance-critical about them already have their own per-thread > buffers or what-not ...which are not safe. Anyway, if you're NACK'ing the whole getrandom() vDSO project, just please outright say so, so I don't spend another 14 revisions in vain. Jason