On 2/14/22, Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > to > | - Does anything anywhere call get_random_xx() before the worker has a > | chance to run? > > Once you queue a work item I don't think that the scheduler needs to put > it on the CPU right away. It may have already have other tasks waiting > including some with a RT priority. > Also, the lock is irqsave() so they can be users in an interrupt > handler. I remember the original reason why I made it irqsave is because > something did kmalloc() and SLUB somehow asked for random bits. Right. So there are two sides of the questions: 1) how bad is this actual race, and are there any drivers that do regularly get bit by this? 2) There's a largeish window between workqueue_init_early() setting up the system highprio workqueue, and workqueue_init() enabling queued workers to actually run. Interrupts also get enabled in the interim. Does anything get bit by that window? Jason