Messages in this thread | | | Subject | Re: [PATCH 10/24] x86/resctrl: Move the schema names into struct resctrl_schema | From | Reinette Chatre <> | Date | Tue, 17 Nov 2020 15:11:21 -0800 |
| |
Hi James,
On 10/30/2020 9:11 AM, James Morse wrote: > Move the names used for the schemata file out of the resource and > into struct resctrl_schema. This allows one resource to have two > different names, based on the other schema properties. > > This patch copies the names, eventually resctrl will generate them.
Please remove "This patch".
> > Remove the arch code's max_name_width, this is now resctrl's > problem. > > Signed-off-by: James Morse <james.morse@arm.com> > --- > arch/x86/kernel/cpu/resctrl/core.c | 9 ++------- > arch/x86/kernel/cpu/resctrl/ctrlmondata.c | 10 +++------- > arch/x86/kernel/cpu/resctrl/internal.h | 2 +- > arch/x86/kernel/cpu/resctrl/rdtgroup.c | 17 ++++++++++++----- > include/linux/resctrl.h | 7 +++++++ > 5 files changed, 25 insertions(+), 20 deletions(-) > > diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c > index 1ed5e04031e6..cda071009fed 100644 > --- a/arch/x86/kernel/cpu/resctrl/core.c > +++ b/arch/x86/kernel/cpu/resctrl/core.c > @@ -37,10 +37,10 @@ DEFINE_MUTEX(rdtgroup_mutex); > DEFINE_PER_CPU(struct resctrl_pqr_state, pqr_state); > > /* > - * Used to store the max resource name width and max resource data width > + * Used to store the max resource data width > * to display the schemata in a tabular format > */ > -int max_name_width, max_data_width; > +int max_data_width; > > /* > * Global boolean for rdt_alloc which is true if any > @@ -776,13 +776,8 @@ static int resctrl_offline_cpu(unsigned int cpu) > static __init void rdt_init_padding(void) > { > struct rdt_resource *r; > - int cl; > > for_each_alloc_capable_rdt_resource(r) { > - cl = strlen(r->name); > - if (cl > max_name_width) > - max_name_width = cl; > - > if (r->data_width > max_data_width) > max_data_width = r->data_width; > }
The original code determines the maximum width based on resources supported by the platform.
> diff --git a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c > index a65ff53394ed..28d69c78c29e 100644 > --- a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c > +++ b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
...
> @@ -391,7 +389,7 @@ static void show_doms(struct seq_file *s, struct resctrl_schema *schema, int clo > bool sep = false; > u32 ctrl_val; > > - seq_printf(s, "%*s:", max_name_width, r->name); > + seq_printf(s, "%*s:", RESCTRL_NAME_LEN, schema->name);
From what I understand this changes what some users will see. In the original code the "max_name_width" is computed based on the maximum length of resources supported. Systems that only support MBA would thus show a schemata of:
MB:0=100;1=100
I expect the above change would change the output to: MB:0=100;1=100
> list_for_each_entry(dom, &r->domains, list) { > hw_dom = resctrl_to_arch_dom(dom); > if (sep)
...
> diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h > index 8a12f4128209..9f71f0238239 100644 > --- a/include/linux/resctrl.h > +++ b/include/linux/resctrl.h > @@ -15,6 +15,11 @@ int proc_resctrl_show(struct seq_file *m, > > #endif > > +/* > + * The longest name we expect in the schemata file: > + */ > +#define RESCTRL_NAME_LEN 7 > + > enum resctrl_conf_type { > CDP_BOTH, > CDP_CODE, > @@ -172,12 +177,14 @@ struct rdt_resource { > > /** > * @list: Member of resctrl's schema list > + * @names: Name to use in "schemata" file
s/names/name/?
> * @conf_type: Type of configuration, e.g. code/data/both > * @res: The rdt_resource for this entry > * @num_closid Number of CLOSIDs available for this resource > */ > struct resctrl_schema { > struct list_head list; > + char name[RESCTRL_NAME_LEN]; > enum resctrl_conf_type conf_type; > struct rdt_resource *res; > u32 num_closid; >
Reinette
| |