On 2023/06/21 19:40, Sebastian Andrzej Siewior wrote: > printk_deferred_enter() has to be invoked in non-migrate-able context to > ensure that deferred printing is enabled and disabled on the same CPU. I can't catch. local_irq_save(flags); makes non-migrate-able context because sleeping is not allowed while IRQ is disabled, doesn't it? > This is the case after zonelist_update_seq has been acquired. > > Acquire zonelist_update_seq with write_seqlock_irqsave() and then defer > printk output. What guarantees that write_seqlock_irqsave() never calls printk() (e.g. lockdep warning) before printk_deferred_enter() takes effect?