From: Juergen Gross <jgross@suse.com>
To: linux-kernel@vger.kernel.org, x86@kernel.org
Cc: Juergen Gross <jgross@suse.com>,
Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
"H. Peter Anvin" <hpa@zytor.com>
Subject: [PATCH 0/4] x86/mtrr: Allow MTRR updates on multiple CPUs in parallel
Date: Wed, 21 Jan 2026 15:11:02 +0100 [thread overview]
Message-ID: <20260121141106.755458-1-jgross@suse.com> (raw)
Today MTRR updates are serialized to not happen on multiple CPUs at the
same time, as the related coding is using global variables.
On huge machines with lots of CPUs this can result in problems, as such
updates are happening through stop_machine(), which will call the MTRR
update function with interrupts off on all CPUs at the same time. The
interrupts will be switched on only after the last CPU has finished
the MTRR update. As the update is required to run in uncached mode, it
can take easily several milliseconds on each CPU, resulting in the
whole process to need several seconds. This in turn can cause the
watchdog to trigger and to recognize a hard system lockup.
This series is changing the behavior by allowing the MTRR update to
happen on all CPUs in parallel.
Juergen Gross (4):
x86/mtrr: Move cache_enable() and cache_disable() to mtrr/generic.c
x86/mtrr: Introduce MTRR work state structure
x86/mtrr: Add a prepare_set hook to mtrr_ops
x86/mtrr: Drop cache_disable_lock
arch/x86/include/asm/cacheinfo.h | 2 -
arch/x86/include/asm/mtrr.h | 2 -
arch/x86/kernel/cpu/cacheinfo.c | 80 +----------------
arch/x86/kernel/cpu/mtrr/generic.c | 137 ++++++++++++++++++++++++-----
arch/x86/kernel/cpu/mtrr/mtrr.c | 3 +
arch/x86/kernel/cpu/mtrr/mtrr.h | 2 +
6 files changed, 120 insertions(+), 106 deletions(-)
--
2.52.0
next reply other threads:[~2026-01-21 14:11 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-21 14:11 Juergen Gross [this message]
2026-01-21 14:11 ` [PATCH 1/4] x86/mtrr: Move cache_enable() and cache_disable() to mtrr/generic.c Juergen Gross
2026-01-21 14:11 ` [PATCH 2/4] x86/mtrr: Introduce MTRR work state structure Juergen Gross
2026-01-21 19:58 ` kernel test robot
2026-01-22 13:48 ` Jürgen Groß
2026-01-21 14:11 ` [PATCH 3/4] x86/mtrr: Add a prepare_set hook to mtrr_ops Juergen Gross
2026-01-21 14:11 ` [PATCH 4/4] x86/mtrr: Drop cache_disable_lock Juergen Gross
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=20260121141106.755458-1-jgross@suse.com \
--to=jgross@suse.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@kernel.org \
--cc=x86@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
all inboxes | Powered by JetHome®