Re: [PATCH v6 29/42] x86/resctrl: Move get_config_index() to a header
From: Reinette Chatre
Date: Wed Feb 19 2025 - 20:28:15 EST
Hi James,
On 2/7/25 10:18 AM, James Morse wrote:
> get_config_index() is used by the architecture specific code to map a
> CLOSID+type pair to an index in the configuration arrays.
>
> MPAM needs to do this too to preserve the ABI to user-space, there is
> no reason to do it differently.
>
> Move the helper to a header file.
>
> Co-developed-by: Dave Martin <Dave.Martin@xxxxxxx>
> Signed-off-by: Dave Martin <Dave.Martin@xxxxxxx>
> Signed-off-by: James Morse <james.morse@xxxxxxx>
> Tested-by: Carl Worth <carl@xxxxxxxxxxxxxxxxxxxxxx> # arm64
> Tested-by: Shaopeng Tan <tan.shaopeng@xxxxxxxxxxxxxx>
> Reviewed-by: Shaopeng Tan <tan.shaopeng@xxxxxxxxxxxxxx>
> Reviewed-by: Tony Luck <tony.luck@xxxxxxxxx>
> ---
> Changes since v1:
> * Reindent resctrl_get_config_index() as per coding-style.rst rules.
> ---
> arch/x86/kernel/cpu/resctrl/ctrlmondata.c | 19 +++----------------
> include/linux/resctrl.h | 15 +++++++++++++++
> 2 files changed, 18 insertions(+), 16 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
> index a93b40ea0bad..032a585293af 100644
> --- a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
> +++ b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
> @@ -287,25 +287,12 @@ static int parse_line(char *line, struct resctrl_schema *s,
> return -EINVAL;
> }
>
> -static u32 get_config_index(u32 closid, enum resctrl_conf_type type)
> -{
> - switch (type) {
> - default:
> - case CDP_NONE:
> - return closid;
> - case CDP_CODE:
> - return closid * 2 + 1;
> - case CDP_DATA:
> - return closid * 2;
> - }
> -}
> -
...
> --- a/include/linux/resctrl.h
> +++ b/include/linux/resctrl.h
> @@ -384,6 +384,21 @@ void resctrl_arch_mon_event_config_write(void *config_info);
> */
> void resctrl_arch_mon_event_config_read(void *config_info);
>
> +/* For use by arch code to remap resctrl's smaller CDP CLOSID range */
> +static inline u32 resctrl_get_config_index(u32 closid,
> + enum resctrl_conf_type type)
> +{
> + switch (type) {
> + default:
> + case CDP_NONE:
> + return closid;
> + case CDP_CODE:
> + return closid * 2 + 1;
> + case CDP_DATA:
> + return closid * 2;
> + }
> +}
> +
Could you please add the motivation for the use of an inline function?
Reinette