From: Amit Singh Tomar <amitsinght@marvell.com>
To: <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>
Cc: <fenghua.yu@intel.com>, <reinette.chatre@intel.com>,
<james.morse@arm.com>, <gcherian@marvell.com>, <robh@kernel.org>,
<peternewman@google.com>,
Amit Singh Tomar <amitsinght@marvell.com>
Subject: [RFC 06/12] fs/resctrl: Extend schemata read for priority partition control
Date: Tue, 15 Aug 2023 20:57:06 +0530 [thread overview]
Message-ID: <20230815152712.1760046-7-amitsinght@marvell.com> (raw)
In-Reply-To: <20230815152712.1760046-1-amitsinght@marvell.com>
At present, "schemata" file under resource control group reveals
information about Cache portion bitmap and Memory Bandwidth allocation.
With the introduction of priority partition control "schemata" is updated
to adopt priority value.
Let's enable support for reading the priority values for "schemata" file.
Signed-off-by: Amit Singh Tomar <amitsinght@marvell.com>
---
drivers/platform/mpam/mpam_resctrl.c | 4 ++++
fs/resctrl/ctrlmondata.c | 15 ++++++++++++---
include/linux/resctrl.h | 4 ++++
3 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/drivers/platform/mpam/mpam_resctrl.c b/drivers/platform/mpam/mpam_resctrl.c
index cc843f1b0fb7..b491a0f897fd 100644
--- a/drivers/platform/mpam/mpam_resctrl.c
+++ b/drivers/platform/mpam/mpam_resctrl.c
@@ -735,7 +735,11 @@ static int mpam_resctrl_resource_init(struct mpam_resctrl_res *res)
if (has_ppart) {
r->priority_cap = true;
+ if (class->props.dspri_wd > 0x10)
+ class->props.dspri_wd = 0x10;
+
r->dspri_default_ctrl = BIT_MASK(class->props.dspri_wd) - 1;
+ r->dspri_data_width = (class->props.dspri_wd + 3) / 4;
}
/*
diff --git a/fs/resctrl/ctrlmondata.c b/fs/resctrl/ctrlmondata.c
index b19ac2509e38..8c8a4d09d22c 100644
--- a/fs/resctrl/ctrlmondata.c
+++ b/fs/resctrl/ctrlmondata.c
@@ -379,7 +379,7 @@ static void show_doms(struct seq_file *s, struct resctrl_schema *schema, int clo
struct rdt_resource *r = schema->res;
struct rdt_domain *dom;
bool sep = false;
- u32 ctrl_val;
+ u32 ctrl_val, dspri_ctrl_val;
/* Walking r->domains, ensure it can't race with cpuhp */
lockdep_assert_cpus_held();
@@ -395,9 +395,18 @@ static void show_doms(struct seq_file *s, struct resctrl_schema *schema, int clo
ctrl_val = resctrl_arch_get_config(r, dom, closid,
schema->conf_type);
- seq_printf(s, r->format_str, dom->id, max_data_width,
- ctrl_val);
+ if (r->priority_cap) {
+ r->dspri_show = true;
+ dspri_ctrl_val = resctrl_arch_get_config(r, dom, closid,
+ CDP_NONE);
+ seq_printf(s, r->format_str, dom->id, max_data_width, ctrl_val,
+ r->dspri_data_width, dspri_ctrl_val);
+ } else
+ seq_printf(s, r->format_str, dom->id, max_data_width,
+ ctrl_val);
+
sep = true;
+ r->dspri_show = false;
}
seq_puts(s, "\n");
}
diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h
index d5b0661c0f70..d7100c330945 100644
--- a/include/linux/resctrl.h
+++ b/include/linux/resctrl.h
@@ -199,12 +199,14 @@ struct resctrl_membw {
* @mon_capable: Is monitor feature available on this machine
* @priority_capable: Is priority partitioning feature available on this machine
* @dspri_store:
+ * @dspri_show: flag to indicate downstream priority read
* @num_rmid: Number of RMIDs available
* @cache_level: Which cache level defines scope of this resource
* @cache: Cache allocation related data
* @membw: If the component has bandwidth controls, their properties.
* @domains: RCU list of all domains for this resource
* @name: Name to use in "schemata" file.
+ * @dspri_data_width Character width of dspri value when displaying
* @data_width: Character width of data when displaying
* @default_ctrl: Specifies default cache cbm or memory B/W percent.
* @dspri_default_ctrl: Specifies default downstream priority value.
@@ -219,6 +221,7 @@ struct rdt_resource {
bool mon_capable;
bool priority_cap;
bool dspri_store;
+ bool dspri_show;
int num_rmid;
int cache_level;
struct resctrl_cache cache;
@@ -226,6 +229,7 @@ struct rdt_resource {
struct list_head domains;
char *name;
int data_width;
+ int dspri_data_width;
u32 default_ctrl;
u32 dspri_default_ctrl;
const char *format_str;
--
2.25.1
next prev parent reply other threads:[~2023-08-15 15:29 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-15 15:27 [RFC 00/12] ARM: MPAM: add support for priority partitioning control Amit Singh Tomar
2023-08-15 15:27 ` [RFC 01/12] arm_mpam: Handle resource instances mapped to different controls Amit Singh Tomar
2023-09-01 12:39 ` Jonathan Cameron
2023-08-15 15:27 ` [RFC 02/12] arm_mpam: resctrl: Detect priority partitioning capability Amit Singh Tomar
2023-09-01 12:30 ` Jonathan Cameron
2023-08-15 15:27 ` [RFC 03/12] arm_mpam: resctrl: Define new schemata format for priority partition Amit Singh Tomar
2023-08-15 15:27 ` [RFC 04/12] fs/resctrl: Obtain CPBM upon priority partition presence Amit Singh Tomar
2023-08-15 15:27 ` [RFC 05/12] fs/resctrl: Set-up downstream priority partition resources Amit Singh Tomar
2023-08-17 17:39 ` Fenghua Yu
2023-08-15 15:27 ` Amit Singh Tomar [this message]
2023-08-17 17:42 ` [RFC 06/12] fs/resctrl: Extend schemata read for priority partition control Fenghua Yu
2023-08-15 15:27 ` [RFC 07/12] arm_mpam: resctrl: Retrieve priority values from arch code Amit Singh Tomar
2023-08-15 15:27 ` [RFC 08/12] fs/resctrl: Schemata write only for intended resource Amit Singh Tomar
2023-08-15 15:27 ` [RFC 09/12] fs/resctrl: Extend schemata write for priority partition control Amit Singh Tomar
2023-08-17 17:27 ` Fenghua Yu
2023-08-17 17:53 ` Fenghua Yu
2023-08-15 15:27 ` [RFC 10/12] arm_mpam: resctrl: Facilitate writing downstream priority value Amit Singh Tomar
2023-08-15 15:27 ` [RFC 11/12] arm_mpam: Fix Downstream priority mask Amit Singh Tomar
2023-09-01 13:32 ` Jonathan Cameron
2023-08-15 15:27 ` [RFC 12/12] arm_mpam: Program Downstream priority value Amit Singh Tomar
2023-09-01 13:17 ` Jonathan Cameron
2023-08-17 19:11 ` [RFC 00/12] ARM: MPAM: add support for priority partitioning control Reinette Chatre
2023-08-17 20:29 ` Reinette Chatre
2023-08-22 12:44 ` [EXT] " Amit Singh Tomar
2023-08-23 19:06 ` Reinette Chatre
2023-08-23 21:33 ` Amit Singh Tomar
2023-08-23 22:20 ` Reinette Chatre
2023-08-23 22:36 ` Luck, Tony
2023-08-24 8:52 ` Amit Singh Tomar
2023-08-24 15:30 ` Luck, Tony
2023-08-24 18:00 ` Reinette Chatre
2024-01-11 20:56 ` Peter Newman
2024-01-11 21:40 ` Tony Luck
2024-01-11 22:01 ` Reinette Chatre
2024-01-11 23:14 ` Luck, Tony
2024-01-11 23:31 ` Reinette Chatre
2023-08-22 9:01 ` Peter Newman
2023-09-01 14:42 ` Jonathan Cameron
2023-09-01 15:04 ` Jonathan Cameron
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=20230815152712.1760046-7-amitsinght@marvell.com \
--to=amitsinght@marvell.com \
--cc=fenghua.yu@intel.com \
--cc=gcherian@marvell.com \
--cc=james.morse@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=peternewman@google.com \
--cc=reinette.chatre@intel.com \
--cc=robh@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®