From: Jan Beulich <jbeulich@suse.com>
To: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Cc: "Andrew Cooper" <andrew.cooper3@citrix.com>,
"Wei Liu" <wl@xen.org>, "Roger Pau Monné" <roger.pau@citrix.com>
Subject: [PATCH v2 2/2] x86/mwait-idle: add core C6 optimization for SPR
Date: Thu, 2 Jun 2022 12:27:07 +0200 [thread overview]
Message-ID: <525b2d31-4218-b4d4-3000-a3a045ae7f59@suse.com> (raw)
In-Reply-To: <f8cebd1c-1679-7b67-c43b-8c0cbe8ffa52@suse.com>
From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Add a Sapphire Rapids Xeon C6 optimization, similar to what we have for Sky Lake
Xeon: if package C6 is disabled, adjust C6 exit latency and target residency to
match core C6 values, instead of using the default package C6 values.
Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Origin: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 3a9cf77b60dc
Make sure a contradictory "preferred-cstates" wouldn't cause bypassing
of the added logic.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Roger Pau Monné <roger.pau@citrix.com>
---
v2: Sync with the Linux side fix to the noticed issue. Re-base over
change to earlier patch.
--- a/xen/arch/x86/cpu/mwait-idle.c
+++ b/xen/arch/x86/cpu/mwait-idle.c
@@ -1273,18 +1273,31 @@ static void __init skx_idle_state_table_
*/
static void __init spr_idle_state_table_update(void)
{
- /* Check if user prefers C1E over C1. */
- if (preferred_states_mask & BIT(2, U)) {
- if (preferred_states_mask & BIT(1, U))
- /* Both can't be enabled, stick to the defaults. */
- return;
+ uint64_t msr;
+ /* Check if user prefers C1E over C1. */
+ if (preferred_states_mask & BIT(2, U) &&
+ !(preferred_states_mask & BIT(1, U))) {
+ /* Disable C1 and enable C1E. */
spr_cstates[0].flags |= CPUIDLE_FLAG_DISABLED;
spr_cstates[1].flags &= ~CPUIDLE_FLAG_DISABLED;
/* Request enabling C1E using the "C1E promotion" bit. */
idle_cpu_spr.c1e_promotion = C1E_PROMOTION_ENABLE;
}
+
+ /*
+ * By default, the C6 state assumes the worst-case scenario of package
+ * C6. However, if PC6 is disabled, we update the numbers to match
+ * core C6.
+ */
+ rdmsrl(MSR_PKG_CST_CONFIG_CONTROL, msr);
+
+ /* Limit value 2 and above allow for PC6. */
+ if ((msr & 0x7) < 2) {
+ spr_cstates[2].exit_latency = 190;
+ spr_cstates[2].target_residency = 600;
+ }
}
/*
next prev parent reply other threads:[~2022-06-02 10:27 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-02 10:25 [PATCH v2 0/2] x86/mwait-idle: (remaining) SPR support Jan Beulich
2022-06-02 10:26 ` [PATCH v2 1/2] x86/mwait-idle: add 'preferred-cstates' command line option Jan Beulich
2022-07-05 8:44 ` Ping: " Jan Beulich
2022-06-02 10:27 ` Jan Beulich [this message]
2022-07-06 7:30 ` [PATCH v2 0/2] x86/mwait-idle: (remaining) SPR support Henry Wang
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=525b2d31-4218-b4d4-3000-a3a045ae7f59@suse.com \
--to=jbeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=roger.pau@citrix.com \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.