On Sun, Sep 15, 2019 at 09:29:55AM -0700, Linus Torvalds wrote: > On Sat, Sep 14, 2019 at 11:51 PM Lennart Poettering > <mzxreary@xxxxxxxxxxx> wrote: > > > > Oh man. Just spend 5min to understand the situation, before claiming > > this was garbage or that was garbage. The code above does not block > > boot. > > Yes it does. You clearly didn't read the thread. > > > It blocks startup of services that explicit order themselves > > after the code above. There's only a few services that should do that, > > and the main system boots up just fine without waiting for this. > > That's a nice theory, but it doesn't actually match reality. > > There are clearly broken setups that use this for things that it > really shouldn't be used for. Asking for true randomness at boot > before there is any indication that randomness exists, and then just > blocking with no further action that could actually _generate_ said > randomness. > > If your description was true that the system would come up and be > usable while the blocked thread is waiting for that to happen, things > would be fine. > A small note here, especially after I've just read the commit log of 72dbcf721566 ('Revert ext4: "make __ext4_get_inode_loc plug"'), which unfairly blames systemd there. Yes, the systemd-random-seed(8) process blocks, but this is an isolated process, and it's only there as a synchronization point and to load/restore random seeds from disk across reboots. The wisdom of having a sysnchronization service ("before/after urandom CRNG is inited") can be debated. That service though, and systemd in general, did _not_ block the overall system boot. What blocked the system boot was GDM/gnome-session implicitly calling getrandom() for the Xorg MIT cookie. This was shown in the strace log below: https://lkml.kernel.org/r/20190910173243.GA3992@darwi-home-pc thanks, -- darwi http://darwish.chasingpointers.com