Re: [PATCH v9 1/9] x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags

Moger, Babu
2024-11-15T16:20:03Z

Tony, Looks good. Thanks

On 11/13/2024 6:17 PM, Tony Luck wrote:
> From: Babu Moger <babu.moger@amd.com>
>
> thread_throttle_mode_init() and mbm_config_rftype_init() both initialize
> fflags for resctrl files.
>
> Adding new files will involve adding another function to initialize
> the fflags. This can be simplified by adding a new function
> resctrl_file_fflags_init() and passing the file name and flags
> to be initialized.
>
> Consolidate fflags initialization into resctrl_file_fflags_init() and
> remove thread_throttle_mode_init() and mbm_config_rftype_init().
>
> Signed-off-by: Babu Moger <babu.moger@amd.com>
> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
> Signed-off-by: Tony Luck <tony.luck@intel.com>
> ---
> arch/x86/kernel/cpu/resctrl/internal.h | 3 +--
> arch/x86/kernel/cpu/resctrl/core.c | 4 +++-
> arch/x86/kernel/cpu/resctrl/monitor.c | 6 ++++--
> arch/x86/kernel/cpu/resctrl/rdtgroup.c | 15 ++-------------
> 4 files changed, 10 insertions(+), 18 deletions(-)
>
> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
> index 955999aecfca..faaff9d64102 100644
> --- a/arch/x86/kernel/cpu/resctrl/internal.h
> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
> @@ -647,8 +647,7 @@ void cqm_handle_limbo(struct work_struct *work);
> bool has_busy_rmid(struct rdt_mon_domain *d);
> void __check_limbo(struct rdt_mon_domain *d, bool force_free);
> void rdt_domain_reconfigure_cdp(struct rdt_resource *r);
> -void __init thread_throttle_mode_init(void);
> -void __init mbm_config_rftype_init(const char *config);
> +void resctrl_file_fflags_init(const char *config, unsigned long fflags);
> void rdt_staged_configs_clear(void);
> bool closid_allocated(unsigned int closid);
> int resctrl_find_cleanest_closid(void);
> diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
> index b681c2e07dbf..f3ee5859b69d 100644
> --- a/arch/x86/kernel/cpu/resctrl/core.c
> +++ b/arch/x86/kernel/cpu/resctrl/core.c
> @@ -234,7 +234,9 @@ static __init bool __get_mem_config_intel(struct rdt_resource *r)
> r->membw.throttle_mode = THREAD_THROTTLE_PER_THREAD;
> else
> r->membw.throttle_mode = THREAD_THROTTLE_MAX;
> - thread_throttle_mode_init();
> +
> + resctrl_file_fflags_init("thread_throttle_mode",
> + RFTYPE_CTRL_INFO | RFTYPE_RES_MB);
>
> r->alloc_capable = true;
>
> diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
> index 851b561850e0..7ef1a293cc13 100644
> --- a/arch/x86/kernel/cpu/resctrl/monitor.c
> +++ b/arch/x86/kernel/cpu/resctrl/monitor.c
> @@ -1223,11 +1223,13 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *r)
>
> if (rdt_cpu_has(X86_FEATURE_CQM_MBM_TOTAL)) {
> mbm_total_event.configurable = true;
> - mbm_config_rftype_init("mbm_total_bytes_config");
> + resctrl_file_fflags_init("mbm_total_bytes_config",
> + RFTYPE_MON_INFO | RFTYPE_RES_CACHE);
> }
> if (rdt_cpu_has(X86_FEATURE_CQM_MBM_LOCAL)) {
> mbm_local_event.configurable = true;
> - mbm_config_rftype_init("mbm_local_bytes_config");
> + resctrl_file_fflags_init("mbm_local_bytes_config",
> + RFTYPE_MON_INFO | RFTYPE_RES_CACHE);
> }
> }
>
> diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> index d7163b764c62..2b198ef95e1e 100644
> --- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> +++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
> @@ -2020,24 +2020,13 @@ static struct rftype *rdtgroup_get_rftype_by_name(const char *name)
> return NULL;
> }
>
> -void __init thread_throttle_mode_init(void)
> -{
> - struct rftype *rft;
> -
> - rft = rdtgroup_get_rftype_by_name("thread_throttle_mode");
> - if (!rft)
> - return;
> -
> - rft->fflags = RFTYPE_CTRL_INFO | RFTYPE_RES_MB;
> -}
> -
> -void __init mbm_config_rftype_init(const char *config)
> +void resctrl_file_fflags_init(const char *config, unsigned long fflags)
> {
> struct rftype *rft;
>
> rft = rdtgroup_get_rftype_by_name(config);
> if (rft)
> - rft->fflags = RFTYPE_MON_INFO | RFTYPE_RES_CACHE;
> + rft->fflags = fflags;
> }
>
> /**

--
- Babu Moger