[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ead5a097-44f7-4eaa-8e98-08450b4d51f6@zytor.com>
Date: Wed, 5 Feb 2025 22:24:58 -0800
From: Xin Li <xin@...or.com>
To: Babu Moger <babu.moger@....com>, corbet@....net, reinette.chatre@...el.com,
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 v11 10/23] x86/resctrl: Remove MSR reading of event
configuration value
On 1/22/2025 12:20 PM, Babu Moger wrote:
> diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
> index 8917c7261680..6fe9e610e9a0 100644
> --- a/arch/x86/kernel/cpu/resctrl/monitor.c
> +++ b/arch/x86/kernel/cpu/resctrl/monitor.c
> @@ -1324,3 +1324,49 @@ int resctrl_arch_mbm_cntr_assign_set(struct rdt_resource *r, bool enable)
>
> return 0;
> }
> +
> +u32 resctrl_arch_mon_event_config_get(struct rdt_mon_domain *d,
> + enum resctrl_event_id eventid)
> +{
> + struct rdt_hw_mon_domain *hw_dom = resctrl_to_arch_mon_dom(d);
> +
> + switch (eventid) {
> + case QOS_L3_OCCUP_EVENT_ID:
> + break;
> + case QOS_L3_MBM_TOTAL_EVENT_ID:
> + return hw_dom->mbm_total_cfg;
> + case QOS_L3_MBM_LOCAL_EVENT_ID:
> + return hw_dom->mbm_local_cfg;
> + }
> +
> + /* Never expect to get here */
> + WARN_ON_ONCE(1);
> +
> + return INVALID_CONFIG_VALUE;
> +}
> +
> +void resctrl_arch_mon_event_config_set(void *info)
> +{
> + struct mon_config_info *mon_info = info;
> + struct rdt_hw_mon_domain *hw_dom;
> + unsigned int index;
> +
> + index = mon_event_config_index_get(mon_info->evtid);
> + if (index == INVALID_CONFIG_INDEX)
> + return;
> +
> + wrmsr(MSR_IA32_EVT_CFG_BASE + index, mon_info->mon_config, 0);
This is the existing code, however it would be better to use wrmsrl()
when the higher 32-bit are all 0s:
wrmsrl(MSR_IA32_EVT_CFG_BASE + index, mon_info->mon_config);
Thanks!
Xin
Powered by blists - more mailing lists