Hi Harald, On Tue, Jul 12, 2022 at 04:35:41PM +0200, Harald Freudenberger wrote: > On 2022-07-12 14:27, Jason A. Donenfeld wrote: > > Hi Harald, > > > > On Tue, Jul 12, 2022 at 02:09:35PM +0200, Harald Freudenberger wrote: > >> > You've gone through the troubles of confirming experimentally what > >> > in_task() does, but that doesn't answer *why* it should be disallowed > >> > variously in each one of these contexts. > >> > >> I think, I showed this. The only real occurrences remaining for the > >> arch_get_random_seed_long() call is within softirq context when the > >> network layer tries to allocate some skb buffers. My personal feeling > >> about this is that it does not hurt - but I asked our network guys > >> and their feedback is clear: no way - every delay there may cause > >> high bandwidth traffic to stumble and this is to be absolutely > >> avoided. > >> However, they can't give me any measurements. > >> > >> So yes, the intention is now with checking for in_task() to prevent > >> the trng call in hard and soft interrupt context. But still I'd like > >> to meet your condition to provide good random at kernel startup. > > > > That's too bad, but okay. > > > > Final question: do you see any of the in_task() vs in_whatever() > > semantics changing if arch_get_random_words{,_seed}() is ever > > implemented, which would reduce the current multitude of calls to the > > trng to a single call? > > > > Jason > > Hm, no, I can't see a way to provide trng random data in any whatever > interrupt context for the next future. The only enabler would be to > use a buffer ... I started to get in contact with our hardware guys > to make the trng data internally buffered and this the invocation > could be in no time give back random data. But this may be a > hardware development thing for the next machine generation. Alrightie then. Well, I'll Ack a v2 that keeps the _int variant. Sounds like then we'll be done here. Tangential topic: would be nice to add the TRNG instruction to QEMU's TCG so that VMs in CI have a bit of randomness available. Jason