From: Chen Yu <yu.c.chen@intel.com>
To: tony.luck@intel.com, reinette.chatre@intel.com
Cc: x86@kernel.org, linux-kernel@vger.kernel.org, tglx@kernel.org,
mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
hpa@zytor.com, Dave.Martin@arm.com, james.morse@arm.com,
babu.moger@amd.com, fenghuay@nvidia.com,
Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>,
Chen Yu <yu.c.chen@intel.com>
Subject: [RFC PATCH 3/6] x86/resctrl: Rename prev_msr to prev_mon_val
Date: Wed, 27 May 2026 17:27:39 +0800 [thread overview]
Message-ID: <a2c1e8735cd67e4c3911d21f6b9c85b2dd58d0a8.1779872016.git.yu.c.chen@intel.com> (raw)
In-Reply-To: <cover.1779872016.git.yu.c.chen@intel.com>
Rename the prev_msr field in struct arch_mbm_state to prev_mon_val.
With ERDT, the previous monitor value may come from an MMIO
register rather than from an MSR, so the "msr" suffix is no longer
accurate. The new name describes the field by its meaning (the
previous monitor value) instead of by the access method.
This is preparation for ERDT support, which reads monitoring
counters via MMIO.
No functional change.
Co-developed-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Signed-off-by: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
Signed-off-by: Chen Yu <yu.c.chen@intel.com>
---
arch/x86/kernel/cpu/resctrl/internal.h | 8 +++----
arch/x86/kernel/cpu/resctrl/monitor.c | 30 +++++++++++++-------------
2 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
index 9c59bd5e028e..97065dc6e14f 100644
--- a/arch/x86/kernel/cpu/resctrl/internal.h
+++ b/arch/x86/kernel/cpu/resctrl/internal.h
@@ -31,13 +31,13 @@
/**
* struct arch_mbm_state - values used to compute resctrl_arch_rmid_read()s
* return value.
- * @chunks: Total data moved (multiply by rdt_group.mon_scale to get bytes)
- * @prev_msr: Value of IA32_QM_CTR last time it was read for the RMID used to
- * find this struct.
+ * @chunks: Total data moved (multiply by rdt_group.mon_scale to get bytes)
+ * @prev_mon_val: Previous monitor counter value for the RMID used to
+ * find this struct.
*/
struct arch_mbm_state {
u64 chunks;
- u64 prev_msr;
+ u64 prev_mon_val;
};
/* Setting bit 0 in L3_QOS_EXT_CFG enables the ABMC feature. */
diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
index 9bd87bae4983..991f0a796551 100644
--- a/arch/x86/kernel/cpu/resctrl/monitor.c
+++ b/arch/x86/kernel/cpu/resctrl/monitor.c
@@ -186,7 +186,7 @@ void resctrl_arch_reset_rmid(struct rdt_resource *r, struct rdt_l3_mon_domain *d
prmid = logical_rmid_to_physical_rmid(cpu, rmid);
/* Record any initial, non-zero count value. */
- __rmid_read_phys(prmid, eventid, &am->prev_msr);
+ __rmid_read_phys(prmid, eventid, &am->prev_mon_val);
}
}
@@ -209,16 +209,16 @@ void resctrl_arch_reset_rmid_all(struct rdt_resource *r, struct rdt_l3_mon_domai
}
}
-static u64 mbm_overflow_count(u64 prev_msr, u64 cur_msr, unsigned int width)
+static u64 mbm_overflow_count(u64 prev_val, u64 cur_val, unsigned int width)
{
u64 shift = 64 - width, chunks;
- chunks = (cur_msr << shift) - (prev_msr << shift);
+ chunks = (cur_val << shift) - (prev_val << shift);
return chunks >> shift;
}
static u64 get_corrected_val(struct rdt_resource *r, struct rdt_l3_mon_domain *d,
- u32 rmid, enum resctrl_event_id eventid, u64 msr_val)
+ u32 rmid, enum resctrl_event_id eventid, u64 mon_val)
{
struct rdt_hw_l3_mon_domain *hw_dom = resctrl_to_arch_mon_dom(d);
struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
@@ -227,12 +227,12 @@ static u64 get_corrected_val(struct rdt_resource *r, struct rdt_l3_mon_domain *d
am = get_arch_mbm_state(hw_dom, rmid, eventid);
if (am) {
- am->chunks += mbm_overflow_count(am->prev_msr, msr_val,
+ am->chunks += mbm_overflow_count(am->prev_mon_val, mon_val,
hw_res->mbm_width);
chunks = get_corrected_mbm_count(rmid, am->chunks);
- am->prev_msr = msr_val;
+ am->prev_mon_val = mon_val;
} else {
- chunks = msr_val;
+ chunks = mon_val;
}
return chunks * hw_res->mon_scale;
@@ -245,7 +245,7 @@ int resctrl_arch_rmid_read(struct rdt_resource *r, struct rdt_domain_hdr *hdr,
struct rdt_hw_l3_mon_domain *hw_dom;
struct rdt_l3_mon_domain *d;
struct arch_mbm_state *am;
- u64 msr_val;
+ u64 mon_val;
u32 prmid;
int cpu;
int ret;
@@ -262,14 +262,14 @@ int resctrl_arch_rmid_read(struct rdt_resource *r, struct rdt_domain_hdr *hdr,
hw_dom = resctrl_to_arch_mon_dom(d);
cpu = cpumask_any(&hdr->cpu_mask);
prmid = logical_rmid_to_physical_rmid(cpu, rmid);
- ret = __rmid_read_phys(prmid, eventid, &msr_val);
+ ret = __rmid_read_phys(prmid, eventid, &mon_val);
if (!ret) {
- *val = get_corrected_val(r, d, rmid, eventid, msr_val);
+ *val = get_corrected_val(r, d, rmid, eventid, mon_val);
} else if (ret == -EINVAL) {
am = get_arch_mbm_state(hw_dom, rmid, eventid);
if (am)
- am->prev_msr = 0;
+ am->prev_mon_val = 0;
}
return ret;
@@ -324,7 +324,7 @@ void resctrl_arch_reset_cntr(struct rdt_resource *r, struct rdt_l3_mon_domain *d
memset(am, 0, sizeof(*am));
/* Record any initial, non-zero count value. */
- __cntr_id_read(cntr_id, &am->prev_msr);
+ __cntr_id_read(cntr_id, &am->prev_mon_val);
}
}
@@ -332,14 +332,14 @@ int resctrl_arch_cntr_read(struct rdt_resource *r, struct rdt_l3_mon_domain *d,
u32 unused, u32 rmid, int cntr_id,
enum resctrl_event_id eventid, u64 *val)
{
- u64 msr_val;
+ u64 mon_val;
int ret;
- ret = __cntr_id_read(cntr_id, &msr_val);
+ ret = __cntr_id_read(cntr_id, &mon_val);
if (ret)
return ret;
- *val = get_corrected_val(r, d, rmid, eventid, msr_val);
+ *val = get_corrected_val(r, d, rmid, eventid, mon_val);
return 0;
}
--
2.25.1
next prev parent reply other threads:[~2026-05-27 9:36 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-27 9:25 [RFC PATCH 0/6] x86/resctrl: Introduce MMIO-based CMT access for Enhanced RDT Chen Yu
2026-05-27 9:26 ` [RFC PATCH 1/6] x86/resctrl: Parse ACPI ERDT table and map RMDD domains by L3 cache ID Chen Yu
2026-05-28 20:21 ` Luck, Tony
2026-05-29 2:16 ` Chen, Yu C
2026-05-27 9:27 ` [RFC PATCH 2/6] x86/resctrl: Parse ACPI CMRC table Chen Yu
2026-05-27 9:27 ` Chen Yu [this message]
2026-05-27 9:27 ` [RFC PATCH 4/6] x86/resctrl: Refactor the monitor read function Chen Yu
2026-05-27 9:28 ` [RFC PATCH 5/6] fs/resctrl: Do not invoke smp_processor_id() in preemptible context Chen Yu
2026-05-27 9:28 ` [RFC PATCH 6/6] x86/resctrl: Add support for L3 occupancy monitoring via RMID MMIO read Chen Yu
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=a2c1e8735cd67e4c3911d21f6b9c85b2dd58d0a8.1779872016.git.yu.c.chen@intel.com \
--to=yu.c.chen@intel.com \
--cc=Dave.Martin@arm.com \
--cc=anil.s.keshavamurthy@intel.com \
--cc=babu.moger@amd.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=fenghuay@nvidia.com \
--cc=hpa@zytor.com \
--cc=james.morse@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=reinette.chatre@intel.com \
--cc=tglx@kernel.org \
--cc=tony.luck@intel.com \
--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®