On 12/5/22 7:15 PM, Jason A. Donenfeld wrote:
Since BPF's bpf_user_rnd_u32() was introduced, there have been three significant developments in the RNG: 1) get_random_u32() returns the same types of bytes as /dev/urandom, eliminating the distinction between "kernel random bytes" and "userspace random bytes", 2) get_random_u32() operates mostly locklessly over percpu state, 3) get_random_u32() has become quite fast.
Wrt "quite fast", do you have a comparison between the two? Asking as its often used in networking worst case on per packet basis (e.g. via XDP), would be useful to state concrete numbers for the two on a given machine.
So rather than using the old clunky Tausworthe prandom code, just call get_random_u32(), which should fit BPF uses perfectly.