On Mon, Sep 16, 2019 at 03:40:50AM +0200, Ahmed S. Darwish wrote: > 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 > So did systemd-random-seed instead drain what little entropy there was before GDM started, increasing the likelihood a subsequent getrandom() call would block? Regards, Vito Caputo