[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <bbbfd020-ee0d-42db-b055-f4056d63977e@intel.com>
Date: Wed, 19 Feb 2025 16:13:45 -0800
From: Reinette Chatre <reinette.chatre@...el.com>
To: James Morse <james.morse@....com>, <x86@...nel.org>,
<linux-kernel@...r.kernel.org>
CC: Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>,
Borislav Petkov <bp@...en8.de>, H Peter Anvin <hpa@...or.com>, Babu Moger
<Babu.Moger@....com>, <shameerali.kolothum.thodi@...wei.com>, "D Scott
Phillips OS" <scott@...amperecomputing.com>, <carl@...amperecomputing.com>,
<lcherian@...vell.com>, <bobo.shaobowang@...wei.com>,
<tan.shaopeng@...itsu.com>, <baolin.wang@...ux.alibaba.com>, Jamie Iles
<quic_jiles@...cinc.com>, Xin Hao <xhao@...ux.alibaba.com>,
<peternewman@...gle.com>, <dfustini@...libre.com>, <amitsinght@...vell.com>,
David Hildenbrand <david@...hat.com>, Rex Nie <rex.nie@...uarmicro.com>,
"Dave Martin" <dave.martin@....com>, Koba Ko <kobak@...dia.com>, Shanker
Donthineni <sdonthineni@...dia.com>, Shaopeng Tan
<tan.shaopeng@...fujitsu.com>, "Tony Luck" <tony.luck@...el.com>
Subject: Re: [PATCH v6 19/42] x86/resctrl: Add
resctrl_arch_is_evt_configurable() to abstract BMEC
Hi James,
On 2/7/25 10:18 AM, James Morse wrote:
> When BMEC is supported the resctrl event can be configured in a number
> of ways. This depends on architecture support. rdt_get_mon_l3_config()
> modifies the struct mon_evt and calls mbm_config_rftype_init() to create
> the files that allow the configuration.
>
> Splitting this into separate architecture and filesystem parts would
> require the struct mon_evt and mbm_config_rftype_init() to be exposed.
>
> Instead, add resctrl_arch_is_evt_configurable(), and use this from
> resctrl_mon_resource_init() to initialise struct mon_evt and call
> mbm_config_rftype_init().
> resctrl_arch_is_evt_configurable() calls rdt_cpu_has() so it doesn't
> obviously benefit from being inlined. Putting it in core.c will allow
> rdt_cpu_has() to eventually become static.
>
Please replace all instances of mbm_config_rftype_init() with
resctrl_file_fflags_init().
> Signed-off-by: James Morse <james.morse@....com>
> Tested-by: Carl Worth <carl@...amperecomputing.com> # arm64
> Tested-by: Shaopeng Tan <tan.shaopeng@...fujitsu.com>
> Reviewed-by: Shaopeng Tan <tan.shaopeng@...fujitsu.com>
> Reviewed-by: Tony Luck <tony.luck@...el.com>
> ---
> Changes since v4:
> * Moved all the __init changes to a later patch now that the exit gubbins
> comes first.
> ---
> arch/x86/kernel/cpu/resctrl/core.c | 15 +++++++++++++++
> arch/x86/kernel/cpu/resctrl/monitor.c | 22 +++++++++++-----------
> include/linux/resctrl.h | 2 ++
> 3 files changed, 28 insertions(+), 11 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
> index 7d14d80b3f94..43a9291988d3 100644
> --- a/arch/x86/kernel/cpu/resctrl/core.c
> +++ b/arch/x86/kernel/cpu/resctrl/core.c
> @@ -831,6 +831,21 @@ bool __init rdt_cpu_has(int flag)
> return ret;
> }
>
> +bool __init resctrl_arch_is_evt_configurable(enum resctrl_event_id evt)
I know resctrl is not consistent in this regard but I think that it would improve
resctrl quality if new additions follow guidance from Documentation/process/coding-style.rst
(see section 6.1) Function prototypes) to place storage class attribute
(__init) before return type.
> +{
> + if (!rdt_cpu_has(X86_FEATURE_BMEC))
> + return false;
> +
> + switch (evt) {
> + case QOS_L3_MBM_TOTAL_EVENT_ID:
> + return rdt_cpu_has(X86_FEATURE_CQM_MBM_TOTAL);
> + case QOS_L3_MBM_LOCAL_EVENT_ID:
> + return rdt_cpu_has(X86_FEATURE_CQM_MBM_LOCAL);
> + default:
> + return false;
> + }
> +}
> +
> static __init bool get_mem_config(void)
> {
> struct rdt_hw_resource *hw_res = &rdt_resources_all[RDT_RESOURCE_MBA];
Reinette
Powered by blists - more mailing lists