Re: [PATCH v6 18/42] x86/resctrl: Move the is_mbm_*_enabled() helpers to asm/resctrl.h
From: James Morse
Date: Fri Feb 28 2025 - 14:56:58 EST
Hi Reinette,
On 19/02/2025 23:55, Reinette Chatre wrote:
> On 2/7/25 10:17 AM, James Morse wrote:
>> The architecture specific parts of resctrl provide helpers like
>> is_mbm_total_enabled() and is_mbm_local_enabled() to hide accesses
>> to the rdt_mon_features bitmap.
>>
>> Exposing a group of helpers between the architecture and filesystem code
>> is preferable to a single unsigned-long like rdt_mon_features. Helpers
>> can be more readable and have a well defined behaviour, while allowing
>> architectures to hide more complex behaviour.
>>
>> Once the filesystem parts of resctrl are moved, these existing helpers can
>> no longer live in internal.h. Move them to include/linux/resctrl.h
>> Once these are exposed to the wider kernel, they should have a
>> 'resctrl_arch_' prefix, to fit the rest of the arch<->fs interface.
>>
>> Move and rename the helpers that touch rdt_mon_features directly.
>> is_mbm_event() and is_mbm_enabled() are only called from rdtgroup.c,
>> so can be moved into that file.
>> diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
>> index 1730ba814834..b7d93670ed94 100644
>> --- a/arch/x86/kernel/cpu/resctrl/monitor.c
>> +++ b/arch/x86/kernel/cpu/resctrl/monitor.c
>
> ...
>
>> @@ -761,6 +761,9 @@ static void update_mba_bw(struct rdtgroup *rgrp, struct rdt_mon_domain *dom_mbm)
>> struct rdtgroup *entry;
>> u32 cur_bw, user_bw;
>>
>> + if (!resctrl_arch_is_mbm_local_enabled())
>> + return;
>> +
>> r_mba = resctrl_arch_get_resource(RDT_RESOURCE_MBA);
>> evt_id = rgrp->mba_mbps_event;
>>
>
> Please drop this hunk. A new [1] resctrl feature makes it possible for software
> controller to work with local as well as total bandwidth events.
Thanks - that was evidently a rebase conflict I messed up!
James