]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags
authorBabu Moger <babu.moger@amd.com>
Fri, 6 Dec 2024 16:31:41 +0000 (08:31 -0800)
committerBorislav Petkov (AMD) <bp@alien8.de>
Mon, 9 Dec 2024 20:37:01 +0000 (21:37 +0100)
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().

  [ Tony: Drop __init attribute so resctrl_file_fflags_init() can be used at
    run time. ]

Signed-off-by: Babu Moger <babu.moger@amd.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Link: https://lore.kernel.org/r/20241206163148.83828-2-tony.luck@intel.com
arch/x86/kernel/cpu/resctrl/core.c
arch/x86/kernel/cpu/resctrl/internal.h
arch/x86/kernel/cpu/resctrl/monitor.c
arch/x86/kernel/cpu/resctrl/rdtgroup.c

index b681c2e07dbf8464fa11779b4ae954f0adb8287e..f3ee5859b69de6a064f2659b80d9aded99608795 100644 (file)
@@ -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;
 
index 955999aecfca9284dac0522cf2d852178187bf22..faaff9d641029c61c099bf5e705d6c3b1ed3cc2c 100644 (file)
@@ -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);
index 5fcb3d635d915873173329fe40bd667f7a6ef49b..69bdc11bacf8f4e0da23dde105964dfb8c20a349 100644 (file)
@@ -1224,11 +1224,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);
                }
        }
 
index d906a1cd849178a9a4a6adedbd6f00f222b84c44..d333570e893d34ffd2f98ae686a1bcfa79db8146 100644 (file)
@@ -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;
 }
 
 /**