On Wed 21-06-23 13:16:36, Sebastian Andrzej Siewior wrote: > On 2023-06-21 12:59:44 [+0200], Michal Hocko wrote: > > On Wed 21-06-23 12:40:34, Sebastian Andrzej Siewior wrote: > > > __build_all_zonelists() acquires zonelist_update_seq by first disabling > > > interrupts via local_irq_save() and then acquiring the seqlock with > > > write_seqlock(). This is troublesome and leads to problems on > > > PREEMPT_RT because the inner spinlock_t is now acquired with disabled > > > interrupts. > > > > And the spinlock might sleep with PREEMPT_RT so a deadlock, right? It > > would be better to call that out explicitly > > No, no deadlock. Let me double check this a VM with mem-hotplug later > one but I don't expect an IRQ path. If so there should be more broken > pieces… > > On PREEMPT_RT what you can happen is that the writer is preempted by a > high-priority reader which then deadlocks because the reader spins while > waiting and the writer is blocked. For this issue we have lock + unlock > in the seq reader to PI boost the seq writer so it can make progress. Please state the the problem explicitly in the changelog. You are marking this patch as a fix so the underlying issue should be stated. Thanks! -- Michal Hocko SUSE Labs