From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: stable-rt@vger.kernel.org
Cc: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com>
Subject: v5.10 and less needs a fix up for __build_all_zonelists()
Date: Fri, 3 Nov 2023 12:35:29 +0100 [thread overview]
Message-ID: <20231103113529.3TspAnq-@linutronix.de> (raw)
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
next reply other threads:[~2023-11-03 11:35 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-03 11:35 Sebastian Andrzej Siewior [this message]
2023-11-03 12:47 ` v5.10 and less needs a fix up for __build_all_zonelists() Luis Claudio R. Goncalves
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231103113529.3TspAnq-@linutronix.de \
--to=bigeasy@linutronix.de \
--cc=lgoncalv@redhat.com \
--cc=stable-rt@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).