On Tue, Jan 3, 2023 at 12:15 PM Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Tue, Jan 3, 2023 at 12:03 PM Jason A. Donenfeld <Jason@xxxxxxxxx> wrote: > > > > That buffering cannot be done safely currently > > .. again, this is "your semantics" (the (b) in my humbug list), not > necessarily reality for anybody else. Just to make an example: fork() is already problematic for something as fundamental as <stdio.h>. That doesn't mean that we do a special fork-safe stdio.h infrastructure in the kernel. It just means that people have to do things like fflush(NULL) (or use variations of setbuf() and friends) when they deal with fork() and stdio interactions. The random number generator really isn't that different. Periodic reseeding isn't something stdio has to deal with, but having a timestamp in user space library and forcing a re-seed isn't unheard of in other contexts. You don't even need anything as fancy as an actual timer, because it doesn't need *active* flushing, just a "oh, it's been too long since we read the random data, let's do it again". And yes, I bet it would be a good idea to have an actual library for this that handles (and *documents*) these kinds of issues - exactly like a <stdio.h>, just for randomness. I just don't think it should be involved in the kernel - again exactly like <stdio.h>. Linus