[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bd18ea99-5126-4eef-8906-d90115f4c225@intel.com>
Date: Thu, 19 Dec 2024 14:50:36 -0800
From: Reinette Chatre <reinette.chatre@...el.com>
To: Babu Moger <babu.moger@....com>, <corbet@....net>, <tglx@...utronix.de>,
<mingo@...hat.com>, <bp@...en8.de>, <dave.hansen@...ux.intel.com>,
<tony.luck@...el.com>, <peternewman@...gle.com>
CC: <fenghua.yu@...el.com>, <x86@...nel.org>, <hpa@...or.com>,
<paulmck@...nel.org>, <akpm@...ux-foundation.org>, <thuth@...hat.com>,
<rostedt@...dmis.org>, <xiongwei.song@...driver.com>,
<pawan.kumar.gupta@...ux.intel.com>, <daniel.sneddon@...ux.intel.com>,
<jpoimboe@...nel.org>, <perry.yuan@....com>, <sandipan.das@....com>,
<kai.huang@...el.com>, <xiaoyao.li@...el.com>, <seanjc@...gle.com>,
<xin3.li@...el.com>, <andrew.cooper3@...rix.com>, <ebiggers@...gle.com>,
<mario.limonciello@....com>, <james.morse@....com>,
<tan.shaopeng@...itsu.com>, <linux-doc@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <maciej.wieczor-retman@...el.com>,
<eranian@...gle.com>
Subject: Re: [PATCH v10 13/24] x86/resctrl: Introduce interface to display
number of free counters
(andipan.das@....com -> sandipan.das@....com to stop sending undeliverable emails)
Hi Babu,
On 12/12/24 12:15 PM, Babu Moger wrote:
> Provide the interface to display the number of monitoring counters
> available for assignment in each domain when mbm_cntr_assign is supported.
>
> Signed-off-by: Babu Moger <babu.moger@....com>
> ---
> v10: Patch changed to handle the counters at domain level.
> https://lore.kernel.org/lkml/CALPaoCj+zWq1vkHVbXYP0znJbe6Ke3PXPWjtri5AFgD9cQDCUg@mail.gmail.com/
> So, display logic also changed now.
>
> v9: New patch
> ---
> Documentation/arch/x86/resctrl.rst | 4 +++
> arch/x86/kernel/cpu/resctrl/monitor.c | 1 +
> arch/x86/kernel/cpu/resctrl/rdtgroup.c | 47 ++++++++++++++++++++++++++
> 3 files changed, 52 insertions(+)
>
> diff --git a/Documentation/arch/x86/resctrl.rst b/Documentation/arch/x86/resctrl.rst
> index 43a861adeada..c075fcee96b7 100644
> --- a/Documentation/arch/x86/resctrl.rst
> +++ b/Documentation/arch/x86/resctrl.rst
> @@ -302,6 +302,10 @@ with the following files:
> memory bandwidth tracking to a single memory bandwidth event per
> monitoring group.
>
> +"available_mbm_cntrs":
> + The number of monitoring counters available for assignment in each
> + domain when the architecture supports mbm_cntr_assign mode.
"architecture supports" -> "system supports"
It looks to me as though more than just support is required, the mode
is also required to be enabled?
> +
> "max_threshold_occupancy":
> Read/write file provides the largest value (in
> bytes) at which a previously used LLC_occupancy
> diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
> index b07d60fabf1c..f857af361af1 100644
> --- a/arch/x86/kernel/cpu/resctrl/monitor.c
> +++ b/arch/x86/kernel/cpu/resctrl/monitor.c
> @@ -1238,6 +1238,7 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *r)
> cpuid_count(0x80000020, 5, &eax, &ebx, &ecx, &edx);
> r->mon.num_mbm_cntrs = (ebx & GENMASK(15, 0)) + 1;
> resctrl_file_fflags_init("num_mbm_cntrs", RFTYPE_MON_INFO);
> + resctrl_file_fflags_init("available_mbm_cntrs", RFTYPE_MON_INFO);
> }
> }
>
> diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> index 1ee008a63d8b..72518e0ec2ec 100644
> --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> @@ -879,6 +879,47 @@ static int rdtgroup_num_mbm_cntrs_show(struct kernfs_open_file *of,
> return 0;
> }
>
> +static int rdtgroup_available_mbm_cntrs_show(struct kernfs_open_file *of,
> + struct seq_file *s, void *v)
rdtgroup_
> +{
> + struct rdt_resource *r = of->kn->parent->priv;
> + struct rdt_mon_domain *dom;
> + bool sep = false;
> + u32 cntrs, i;
> + int ret = 0;
> +
> + cpus_read_lock();
> + mutex_lock(&rdtgroup_mutex);
> +
> + if (!resctrl_arch_mbm_cntr_assign_enabled(r)) {
> + rdt_last_cmd_puts("mbm_cntr_assign mode is not enabled\n");
> + ret = -EINVAL;
> + goto unlock_cntrs_show;
> + }
> +
> +
unnecessary empty line
> + list_for_each_entry(dom, &r->mon_domains, hdr.list) {
> + if (sep)
> + seq_puts(s, ";");
> +
> + cntrs = 0;
> + for (i = 0; i < r->mon.num_mbm_cntrs; i++) {
> + if (!dom->cntr_cfg[i].rdtgrp)
> + cntrs++;
> + }
> +
> + seq_printf(s, "%d=%d", dom->hdr.id, cntrs);
> + sep = true;
> + }
> + seq_puts(s, "\n");
> +
> +unlock_cntrs_show:
> + mutex_unlock(&rdtgroup_mutex);
> + cpus_read_unlock();
> +
> + return ret;
> +}
> +
> #ifdef CONFIG_PROC_CPU_RESCTRL
>
> /*
> @@ -1961,6 +2002,12 @@ static struct rftype res_common_files[] = {
> .kf_ops = &rdtgroup_kf_single_ops,
> .seq_show = rdtgroup_num_mbm_cntrs_show,
> },
> + {
> + .name = "available_mbm_cntrs",
> + .mode = 0444,
> + .kf_ops = &rdtgroup_kf_single_ops,
> + .seq_show = rdtgroup_available_mbm_cntrs_show,
> + },
> {
> .name = "cpus_list",
> .mode = 0644,
Reinette
Powered by blists - more mailing lists