Messages in this thread | | | From | "Shaopeng Tan (Fujitsu)" <> | Subject | RE: [PATCH v1 30/31] x86/resctrl: Move the filesystem bits to headers visible to fs/resctrl | Date | Thu, 4 Apr 2024 07:43:03 +0000 |
| |
Hello James
> Once the filesystem parts of resctrl move to fs/resctrl, it cannot rely on > definitions in x86's internal.h. > > Move definitions in internal.h that need to be shared between the filesystem > and architecture code to header files that fs/resctrl can include. > > Doing this separately means the filesystem code only moves between files of > the same name, instead of having these changes mixed in too. > > Signed-off-by: James Morse <james.morse@arm.com> > --- > arch/x86/include/asm/resctrl.h | 3 +++ > arch/x86/kernel/cpu/resctrl/core.c | 5 ++++ > arch/x86/kernel/cpu/resctrl/internal.h | 36 -------------------------- > include/linux/resctrl.h | 3 +++ > include/linux/resctrl_types.h | 30 > +++++++++++++++++++++ > 5 files changed, 41 insertions(+), 36 deletions(-) > > diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h > index 491342f56811..746431c66fc4 100644 > --- a/arch/x86/include/asm/resctrl.h > +++ b/arch/x86/include/asm/resctrl.h > @@ -218,6 +218,9 @@ int resctrl_arch_measure_l2_residency(void *_plr); int > resctrl_arch_measure_l3_residency(void *_plr); void > resctrl_cpu_detect(struct cpuinfo_x86 *c); > > +bool resctrl_arch_get_cdp_enabled(enum resctrl_res_level l); int > +resctrl_arch_set_cdp_enabled(enum resctrl_res_level l, bool enable); > + > #else > > static inline void resctrl_arch_sched_in(struct task_struct *tsk) {} diff --git > a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c > index f94ad04023c3..c0fb2e22e110 100644 > --- a/arch/x86/kernel/cpu/resctrl/core.c > +++ b/arch/x86/kernel/cpu/resctrl/core.c > @@ -306,6 +306,11 @@ static void rdt_get_cdp_l2_config(void) > rdt_get_cdp_config(RDT_RESOURCE_L2); > } > > +bool resctrl_arch_get_cdp_enabled(enum resctrl_res_level l) { > + return rdt_resources_all[l].cdp_enabled; } > + > static void > mba_wrmsr_amd(struct rdt_domain *d, struct msr_param *m, struct > rdt_resource *r) { diff --git a/arch/x86/kernel/cpu/resctrl/internal.h > b/arch/x86/kernel/cpu/resctrl/internal.h > index 56218193a8ba..0f7e3f10941b 100644 > --- a/arch/x86/kernel/cpu/resctrl/internal.h > +++ b/arch/x86/kernel/cpu/resctrl/internal.h > @@ -15,12 +15,6 @@ > > #define L2_QOS_CDP_ENABLE 0x01ULL > > -#define CQM_LIMBOCHECK_INTERVAL 1000 > - > -#define MBM_CNTR_WIDTH_BASE 24 > -#define MBM_OVERFLOW_INTERVAL 1000 > -#define MAX_MBA_BW 100u > -#define MBA_IS_LINEAR 0x4 > #define MBM_CNTR_WIDTH_OFFSET_AMD 20 > > #define RMID_VAL_ERROR BIT_ULL(63) > @@ -210,29 +204,6 @@ struct rdtgroup { > struct pseudo_lock_region *plr; > }; > > -/* rdtgroup.flags */ > -#define RDT_DELETED 1 > - > -/* rftype.flags */ > -#define RFTYPE_FLAGS_CPUS_LIST 1 > - > -/* > - * Define the file type flags for base and info directories. > - */ > -#define RFTYPE_INFO BIT(0) > -#define RFTYPE_BASE BIT(1) > -#define RFTYPE_CTRL BIT(4) > -#define RFTYPE_MON BIT(5) > -#define RFTYPE_TOP BIT(6) > -#define RFTYPE_RES_CACHE BIT(8) > -#define RFTYPE_RES_MB BIT(9) > -#define RFTYPE_DEBUG BIT(10) > -#define RFTYPE_CTRL_INFO (RFTYPE_INFO | RFTYPE_CTRL) > -#define RFTYPE_MON_INFO (RFTYPE_INFO | > RFTYPE_MON) > -#define RFTYPE_TOP_INFO (RFTYPE_INFO | > RFTYPE_TOP) > -#define RFTYPE_CTRL_BASE (RFTYPE_BASE | RFTYPE_CTRL) > -#define RFTYPE_MON_BASE (RFTYPE_BASE | > RFTYPE_MON) > - > /* List of all resource groups */ > extern struct list_head rdt_all_groups; > > @@ -370,13 +341,6 @@ static inline struct rdt_resource *resctrl_inc(struct > rdt_resource *res) > return &hw_res->r_resctrl; > } > > -static inline bool resctrl_arch_get_cdp_enabled(enum resctrl_res_level l) -{ > - return rdt_resources_all[l].cdp_enabled; > -} > - > -int resctrl_arch_set_cdp_enabled(enum resctrl_res_level l, bool enable); > - > /* > * To return the common struct rdt_resource, which is contained in struct > * rdt_hw_resource, walk the resctrl member of struct rdt_hw_resource. > diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h index > f786ffceeda3..00cc0457af50 100644 > --- a/include/linux/resctrl.h > +++ b/include/linux/resctrl.h > @@ -41,6 +41,9 @@ int proc_resctrl_show(struct seq_file *m, > */ > #define RESCTRL_MAX_CBM 32 > > +extern unsigned int resctrl_rmid_realloc_limit; extern unsigned int > +resctrl_rmid_realloc_threshold; > +
These two variables has been defined. 44 extern unsigned int resctrl_rmid_realloc_limit; 45 extern unsigned int resctrl_rmid_realloc_threshold; 400 extern unsigned int resctrl_rmid_realloc_threshold; 401 extern unsigned int resctrl_rmid_realloc_limit;
Best regards, Shaopeng TAN
> /** > * struct pseudo_lock_region - pseudo-lock region information > * @s: Resctrl schema for the resource to which this > diff --git a/include/linux/resctrl_types.h b/include/linux/resctrl_types.h > index 4788bd95dac6..fe0b10b589c0 100644 > --- a/include/linux/resctrl_types.h > +++ b/include/linux/resctrl_types.h > @@ -7,6 +7,36 @@ > #ifndef __LINUX_RESCTRL_TYPES_H > #define __LINUX_RESCTRL_TYPES_H > > +#define CQM_LIMBOCHECK_INTERVAL 1000 > + > +#define MBM_CNTR_WIDTH_BASE 24 > +#define MBM_OVERFLOW_INTERVAL 1000 > +#define MAX_MBA_BW 100u > +#define MBA_IS_LINEAR 0x4 > + > +/* rdtgroup.flags */ > +#define RDT_DELETED 1 > + > +/* rftype.flags */ > +#define RFTYPE_FLAGS_CPUS_LIST 1 > + > +/* > + * Define the file type flags for base and info directories. > + */ > +#define RFTYPE_INFO BIT(0) > +#define RFTYPE_BASE BIT(1) > +#define RFTYPE_CTRL BIT(4) > +#define RFTYPE_MON BIT(5) > +#define RFTYPE_TOP BIT(6) > +#define RFTYPE_RES_CACHE BIT(8) > +#define RFTYPE_RES_MB BIT(9) > +#define RFTYPE_DEBUG BIT(10) > +#define RFTYPE_CTRL_INFO (RFTYPE_INFO | RFTYPE_CTRL) > +#define RFTYPE_MON_INFO (RFTYPE_INFO | > RFTYPE_MON) > +#define RFTYPE_TOP_INFO (RFTYPE_INFO | > RFTYPE_TOP) > +#define RFTYPE_CTRL_BASE (RFTYPE_BASE | RFTYPE_CTRL) > +#define RFTYPE_MON_BASE (RFTYPE_BASE | > RFTYPE_MON) > + > /* Reads to Local DRAM Memory */ > #define READS_TO_LOCAL_MEM BIT(0) > > -- > 2.39.2
| |