Hey Thomas, On Wed, May 04, 2022 at 06:45:45PM +0200, Thomas Gleixner wrote: > add_disk_randomness() on !RT kernels. That's what made me look into this > in the first place as it unearthed the long standing FPU protection > bug. See the first patch in this thread. > > Possibly add_device_randomness() too, but I haven't seen evidence so far. It looks like it's being hit from add_input_randomness() via input_handle_event() too. There are two positions we could take toward this: One stance to take would be that if an event happens in an interrupt, add_interrupt_randomness() should in theory already be siphashing in a cycle counter so additional calls to add_{input,disk}_randomness() don't contribute substantially (unless you assume the num field has some entropic value). If that's compelling, then the next thing to do would be adding a `if (in_interrupt()) return;` early on in some function, and then we forever after impose a rule, "never mix into the input pool directly from an irq". The other stance is that these input/disk events are relatively rare -- compared to, say, a storm of interrupts from a NIC -- so mixing into the input pool from there isn't actually a problem, and we benefit from the quasi domain-specific accounting and the superior mixing function, there, so keep it around. And the non-raw spinlock on the input pool won't negatively affect RT from this context, because all its callers on RT should be threaded. The second stance seems easier and more conservative from a certain perspective -- we don't need to change anything -- so I'm more inclined toward it. And given that you've fixed the bug now, it sounds like that's fine with you too. But if you're thinking about it differently in fact, let me know. Jason