Module Name: src Committed By: riastradh Date: Wed Jan 13 23:53:23 UTC 2021
Modified Files: src/sys/kern: kern_entropy.c Log Message: entropy: Use a separate condvar for rndsource list lock. Otherwise, two processes both waiting for entropy will dance around waking each other up (by releasing the rndsource list lock) and going back to sleep (waiting for entropy). Witnessed on the armv7 testbed when /etc/security presumably ran twice over a >day-long test, until the metaphorical plug got pulled: net/if_ipsec/t_ipsec_natt (509/888): 2 test cases ipsecif_natt_transport_null: [ 37123.2631856] entropy: pid 1005 (dd) blocking due to lack of entropy [256.523317s] Failed: atf-check failed; see the output of the test for details ipsecif_natt_transport_rijndaelcbc: [274.370791s] Failed: atf-check failed; see the output of the test for details [532.486697s] ... puffs_lstat_symlink: [ 123442.1606517] entropy: pid 9499 (dd) blocking due to lack of entropy [ 123442.1835067] entropy: pid 1005 (dd) blocking due to lack of entropy [ 123442.1944600] entropy: pid 9499 (dd) blocking due to lack of entropy [ 123442.1944600] entropy: pid 1005 (dd) blocking due to lack of entropy ... To generate a diff of this commit: cvs rdiff -u -r1.26 -r1.27 src/sys/kern/kern_entropy.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.