On 19.09.2017 13:16, Konstantin Tokarev wrote:
19.09.2017, 13:14, "Konstantin Tokarev" <[email protected]>:
14.09.2017, 10:22, "Sami Nurmenniemi" <[email protected]>:
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
Why? Is hash randomization really important in your case?
Actually, you can read value of QT_HASH_SEED from /dev/urandom, restoring
previous behavior exactly.
Thanks, that's one more option for the fastboot demo. We already enabled
rng-tools + hwrng for the normal Boot2Qt images and boot time is no more
problem for those.
Also, you may want to replace QHash with a different data structure in your
boot code.
- It seems code using this in qhash.cpp is the actual reason for the blocked
processes (originated from QDebug)
4. Something else?
Best Regards,
Sami Nurmenniemi
,
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development
--
Regards,
Konstantin
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development