On 2017-09-14 09:21, Sami Nurmenniemi wrote:
Hi,

Commit 120ecc976fc3d5504d234702f68c2ad3898b77a4 changes default behavior of QRandomGenerator to use getentropy instead of /dev/urandom. This causes problems for device boot times when using QRandomGenerator in the boot sequence. As the commit message itself states "What's more, the glibc implementation blocks until entropy is available on early boot". Depending on the hw + kernel configuration of the device, this can increase boot time by more than a minute. For example in the Boot2Qt image qdbd and qtlauncher demo now block until the nonblocking pool is initialized. See QTBUG-63188.

What do you suggest for working around this problem?
1. Disable feature "getentropy" from Boot2Qt builds
- This is the behavior in Qt < 5.10.x
- Only difference in the entropy of randomness is in the early boot
2. Add "rng-tools" to the image for inputting entropy to the kernel
- Speeds up initialization of nonblocking pool
- On devices with HW random generator, this adds real entropy to the kernel pool - On devices without HW random generator, this adds bad entropy from /dev/urandom to the kernel pool
3. Setting  QT_HASH_SEED for the affected processes
- Not a good solution IMO
- It seems code using this in qhash.cpp is the actual reason for the blocked processes (originated from QDebug)
4. Something else?

Hi, couldn't you just look at system's uptime (using sysinfo() for example), use /dev/urandom if the uptime is less than say 10 minutes, and use getentropy for the rest of the day?

Rgrds Henry

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to