From: Reinette Chatre <reinette.chatre@intel.com>
To: Tony Luck <tony.luck@intel.com>,
Fenghua Yu <fenghua.yu@intel.com>,
"Peter Newman" <peternewman@google.com>,
Jonathan Corbet <corbet@lwn.net>,
Shuah Khan <skhan@linuxfoundation.org>, <x86@kernel.org>
Cc: James Morse <james.morse@arm.com>,
Jamie Iles <quic_jiles@quicinc.com>,
Babu Moger <babu.moger@amd.com>,
Randy Dunlap <rdunlap@infradead.org>,
"Shaopeng Tan (Fujitsu)" <tan.shaopeng@fujitsu.com>,
<linux-kernel@vger.kernel.org>, <linux-doc@vger.kernel.org>,
<patches@lists.linux.dev>
Subject: Re: [PATCH v8 6/7] x86/resctrl: Add write option to "mba_MBps_event" file
Date: Tue, 12 Nov 2024 14:18:43 -0800 [thread overview]
Message-ID: <686d0769-a0f2-4808-b038-9c9735f1ddd5@intel.com> (raw)
In-Reply-To: <20241029172832.93963-7-tony.luck@intel.com>
Hi Tony,
On 10/29/24 10:28 AM, Tony Luck wrote:
> A user can choose any of the memory bandwidth monitoring events
> listed in /sys/fs/resctrl/info/L3_mon/mon_features independently
> for each ctrl_mon group by writing to the "mba_MBps_event" file.
Please review the changelog based on tip requirements. Folks used to
tip customs may expect changelog to start with the context, while the
above reads like it describes current context it describes what this patch
makes possible without ever getting to description of the change itself.
>
> Signed-off-by: Tony Luck <tony.luck@intel.com>
> ---
> arch/x86/kernel/cpu/resctrl/internal.h | 2 +
> arch/x86/kernel/cpu/resctrl/ctrlmondata.c | 46 +++++++++++++++++++++++
> arch/x86/kernel/cpu/resctrl/rdtgroup.c | 1 +
> 3 files changed, 49 insertions(+)
>
> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
> index 5f3438ca9e2b..35483c6615b6 100644
> --- a/arch/x86/kernel/cpu/resctrl/internal.h
> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
> @@ -609,6 +609,8 @@ ssize_t rdtgroup_schemata_write(struct kernfs_open_file *of,
> char *buf, size_t nbytes, loff_t off);
> int rdtgroup_schemata_show(struct kernfs_open_file *of,
> struct seq_file *s, void *v);
> +ssize_t rdtgroup_mba_mbps_event_write(struct kernfs_open_file *of,
> + char *buf, size_t nbytes, loff_t off);
> int rdtgroup_mba_mbps_event_show(struct kernfs_open_file *of,
> struct seq_file *s, void *v);
> bool rdtgroup_cbm_overlaps(struct resctrl_schema *s, struct rdt_ctrl_domain *d,
> diff --git a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
> index b9ba419e5c88..fc5585dc688f 100644
> --- a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
> +++ b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
> @@ -518,6 +518,52 @@ static int smp_mon_event_count(void *arg)
> return 0;
> }
>
> +ssize_t rdtgroup_mba_mbps_event_write(struct kernfs_open_file *of,
> + char *buf, size_t nbytes, loff_t off)
> +{
> + struct rdtgroup *rdtgrp;
> + int ret = 0;
> +
> + /* Valid input requires a trailing newline */
> + if (nbytes == 0 || buf[nbytes - 1] != '\n')
> + return -EINVAL;
> + buf[nbytes - 1] = '\0';
> +
> + rdtgrp = rdtgroup_kn_lock_live(of->kn);
> + if (!rdtgrp) {
> + rdtgroup_kn_unlock(of->kn);
> + return -ENOENT;
> + }
> + rdt_last_cmd_clear();
> +
> + if (!strcmp(buf, "mbm_local_bytes")) {
> + if (is_mbm_local_enabled())
> + rdtgrp->mba_mbps_event = QOS_L3_MBM_LOCAL_EVENT_ID;
> + else
> + ret = -ENXIO;
> + } else if (!strcmp(buf, "mbm_total_bytes")) {
> + if (is_mbm_total_enabled())
> + rdtgrp->mba_mbps_event = QOS_L3_MBM_TOTAL_EVENT_ID;
> + else
> + ret = -ENXIO;
> + } else {
> + ret = -EINVAL;
> + }
> +
> + switch (ret) {
> + case -ENXIO:
> + rdt_last_cmd_printf("Unsupported event id '%s'\n", buf);
> + break;
> + case -EINVAL:
> + rdt_last_cmd_printf("Unknown event id '%s'\n", buf);
> + break;
> + }
nit: What is the benefit of distinguishing between these cases in messaging to
user space? I am thinking of the scenario where user may write "llc_occupancy",
this will print "Unknown event id", which is technically not correct since it is
"known", it is just not "supported". Perhaps the default error message can just
always be "Unsupported"?
> +
> + rdtgroup_kn_unlock(of->kn);
> +
> + return ret ?: nbytes;
> +}
> +
> int rdtgroup_mba_mbps_event_show(struct kernfs_open_file *of,
> struct seq_file *s, void *v)
> {
> diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> index 3ba81963e981..6fa501ef187f 100644
> --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> @@ -1947,6 +1947,7 @@ static struct rftype res_common_files[] = {
> .name = "mba_MBps_event",
> .mode = 0644,
Writable bits can be set in this commit.
> .kf_ops = &rdtgroup_kf_single_ops,
> + .write = rdtgroup_mba_mbps_event_write,
> .seq_show = rdtgroup_mba_mbps_event_show,
> },
> {
Reinette
next prev parent reply other threads:[~2024-11-12 22:18 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-29 17:28 [PATCH v8 0/7] x86/resctrl: mba_MBps enhancement Tony Luck
2024-10-29 17:28 ` [PATCH v8 1/7] x86/resctrl: Prepare for per-ctrl_mon group mba_MBps control Tony Luck
2024-11-01 22:03 ` Fenghua Yu
2024-11-01 22:40 ` Tony Luck
2024-11-12 19:24 ` Reinette Chatre
2024-10-29 17:28 ` [PATCH v8 2/7] x86/resctrl: Compute memory bandwidth for all supported events Tony Luck
2024-11-12 19:25 ` Reinette Chatre
2024-10-29 17:28 ` [PATCH v8 3/7] x86/resctrl: Refactor mbm_update() Tony Luck
2024-11-01 22:08 ` Fenghua Yu
2024-11-01 22:57 ` Tony Luck
2024-11-13 22:25 ` Reinette Chatre
2024-11-13 22:58 ` Tony Luck
2024-11-13 23:58 ` Reinette Chatre
2024-11-14 10:31 ` Peter Newman
2024-11-14 17:20 ` Tony Luck
2024-10-29 17:28 ` [PATCH v8 4/7] x86/resctrl: Relax checks for mba_MBps mount option Tony Luck
2024-10-29 17:28 ` [PATCH v8 5/7] x86/resctrl: Add "mba_MBps_event" file to ctrl_mon directories Tony Luck
2024-11-12 22:12 ` Reinette Chatre
2024-11-12 23:42 ` Luck, Tony
2024-11-13 0:20 ` Reinette Chatre
2024-11-13 0:53 ` Luck, Tony
2024-11-13 2:54 ` Reinette Chatre
2024-10-29 17:28 ` [PATCH v8 6/7] x86/resctrl: Add write option to "mba_MBps_event" file Tony Luck
2024-11-01 23:26 ` Fenghua Yu
2024-11-01 23:55 ` Luck, Tony
2024-11-02 0:57 ` Fenghua Yu
2024-11-12 22:00 ` Reinette Chatre
2024-11-12 23:57 ` Luck, Tony
2024-11-13 0:40 ` Reinette Chatre
2024-11-12 22:18 ` Reinette Chatre [this message]
2024-10-29 17:28 ` [PATCH v8 7/7] x86/resctrl: Document the new " Tony Luck
2024-11-12 22:25 ` Reinette Chatre
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=686d0769-a0f2-4808-b038-9c9735f1ddd5@intel.com \
--to=reinette.chatre@intel.com \
--cc=babu.moger@amd.com \
--cc=corbet@lwn.net \
--cc=fenghua.yu@intel.com \
--cc=james.morse@arm.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=patches@lists.linux.dev \
--cc=peternewman@google.com \
--cc=quic_jiles@quicinc.com \
--cc=rdunlap@infradead.org \
--cc=skhan@linuxfoundation.org \
--cc=tan.shaopeng@fujitsu.com \
--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