Hi! upstream landed commit a2ebb51575828 ("mm/page_alloc: use write_seqlock_irqsave() instead write_seqlock() + local_irq_save().") a while ago after Luis pointed me at the actual issue. The v6.1-RT and v5.15-RT received the proper backport via -stable and are good. v5.10-RT has the commit 7bdd3bd5143a4 ("Revert "mm/page_alloc: fix potential deadlock on zonelist_update_seqseqlock"") which I may have suggested at the time but requires now something proper. In reality it may not matter because nobody is using memory-hotplug but is should be fixed properly. Also it (as in v5.10) affects non-RT users. In less than v5.10 it affects possible RT users. The fix for 5.10-RT is just the snippet which is the resolution if the initial commit would be backported to the v5.10 which did not happen. Everything less than v5.10 should apply commit a2ebb51575828 mentioned earlier. Sebastian -----8<--- diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 3760a06932a6e..f6b3a46ac87d5 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -6043,8 +6043,9 @@ static void __build_all_zonelists(void *data) int nid; int __maybe_unused cpu; pg_data_t *self = data; + unsigned long flags; - write_seqlock(&zonelist_update_seq); + write_seqlock_irqsave(&zonelist_update_seq, flags); #ifdef CONFIG_NUMA memset(node_load, 0, sizeof(node_load)); @@ -6077,7 +6078,7 @@ static void __build_all_zonelists(void *data) #endif } - write_sequnlock(&zonelist_update_seq); + write_sequnlock_irqrestore(&zonelist_update_seq, flags); } static noinline void __init