Skip to content

Commit bd4955d

Browse files
aeglbp3tk0v
authored andcommitted
x86/resctrl: Simplify call convention for MSR update functions
The per-resource MSR update functions cat_wrmsr(), mba_wrmsr_intel(), and mba_wrmsr_amd() all take three arguments: (struct rdt_domain *d, struct msr_param *m, struct rdt_resource *r) struct msr_param contains pointers to both struct rdt_resource and struct rdt_domain, thus only struct msr_param is necessary. Pass struct msr_param as a single parameter. Clean up formatting and fix some fir tree declaration ordering. No functional change. Suggested-by: Reinette Chatre <reinette.chatre@intel.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> Reviewed-by: Babu Moger <babu.moger@amd.com> Tested-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com> Link: https://lore.kernel.org/r/20240308213846.77075-3-tony.luck@intel.com
1 parent e3ca96e commit bd4955d

File tree

3 files changed

+18
-27
lines changed

3 files changed

+18
-27
lines changed

arch/x86/kernel/cpu/resctrl/core.c

Lines changed: 16 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,9 @@ int max_name_width, max_data_width;
5656
*/
5757
bool rdt_alloc_capable;
5858

59-
static void
60-
mba_wrmsr_intel(struct rdt_domain *d, struct msr_param *m,
61-
struct rdt_resource *r);
62-
static void
63-
cat_wrmsr(struct rdt_domain *d, struct msr_param *m, struct rdt_resource *r);
64-
static void
65-
mba_wrmsr_amd(struct rdt_domain *d, struct msr_param *m,
66-
struct rdt_resource *r);
59+
static void mba_wrmsr_intel(struct msr_param *m);
60+
static void cat_wrmsr(struct msr_param *m);
61+
static void mba_wrmsr_amd(struct msr_param *m);
6762

6863
#define domain_init(id) LIST_HEAD_INIT(rdt_resources_all[id].r_resctrl.domains)
6964

@@ -309,12 +304,11 @@ static void rdt_get_cdp_l2_config(void)
309304
rdt_get_cdp_config(RDT_RESOURCE_L2);
310305
}
311306

312-
static void
313-
mba_wrmsr_amd(struct rdt_domain *d, struct msr_param *m, struct rdt_resource *r)
307+
static void mba_wrmsr_amd(struct msr_param *m)
314308
{
309+
struct rdt_hw_resource *hw_res = resctrl_to_arch_res(m->res);
310+
struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(m->dom);
315311
unsigned int i;
316-
struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(d);
317-
struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
318312

319313
for (i = m->low; i < m->high; i++)
320314
wrmsrl(hw_res->msr_base + i, hw_dom->ctrl_val[i]);
@@ -334,25 +328,22 @@ static u32 delay_bw_map(unsigned long bw, struct rdt_resource *r)
334328
return r->default_ctrl;
335329
}
336330

337-
static void
338-
mba_wrmsr_intel(struct rdt_domain *d, struct msr_param *m,
339-
struct rdt_resource *r)
331+
static void mba_wrmsr_intel(struct msr_param *m)
340332
{
333+
struct rdt_hw_resource *hw_res = resctrl_to_arch_res(m->res);
334+
struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(m->dom);
341335
unsigned int i;
342-
struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(d);
343-
struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
344336

345337
/* Write the delay values for mba. */
346338
for (i = m->low; i < m->high; i++)
347-
wrmsrl(hw_res->msr_base + i, delay_bw_map(hw_dom->ctrl_val[i], r));
339+
wrmsrl(hw_res->msr_base + i, delay_bw_map(hw_dom->ctrl_val[i], m->res));
348340
}
349341

350-
static void
351-
cat_wrmsr(struct rdt_domain *d, struct msr_param *m, struct rdt_resource *r)
342+
static void cat_wrmsr(struct msr_param *m)
352343
{
344+
struct rdt_hw_resource *hw_res = resctrl_to_arch_res(m->res);
345+
struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(m->dom);
353346
unsigned int i;
354-
struct rdt_hw_domain *hw_dom = resctrl_to_arch_dom(d);
355-
struct rdt_hw_resource *hw_res = resctrl_to_arch_res(r);
356347

357348
for (i = m->low; i < m->high; i++)
358349
wrmsrl(hw_res->msr_base + i, hw_dom->ctrl_val[i]);
@@ -384,7 +375,7 @@ void rdt_ctrl_update(void *arg)
384375
struct msr_param *m = arg;
385376

386377
hw_res = resctrl_to_arch_res(m->res);
387-
hw_res->msr_update(m->dom, m, m->res);
378+
hw_res->msr_update(m);
388379
}
389380

390381
/*
@@ -457,10 +448,11 @@ static int domain_setup_ctrlval(struct rdt_resource *r, struct rdt_domain *d)
457448
hw_dom->ctrl_val = dc;
458449
setup_default_ctrlval(r, dc);
459450

451+
m.res = r;
460452
m.dom = d;
461453
m.low = 0;
462454
m.high = hw_res->num_closid;
463-
hw_res->msr_update(d, &m, r);
455+
hw_res->msr_update(&m);
464456
return 0;
465457
}
466458

arch/x86/kernel/cpu/resctrl/ctrlmondata.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ int resctrl_arch_update_one(struct rdt_resource *r, struct rdt_domain *d,
289289
msr_param.dom = d;
290290
msr_param.low = idx;
291291
msr_param.high = idx + 1;
292-
hw_res->msr_update(d, &msr_param, r);
292+
hw_res->msr_update(&msr_param);
293293

294294
return 0;
295295
}

arch/x86/kernel/cpu/resctrl/internal.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -445,8 +445,7 @@ struct rdt_hw_resource {
445445
struct rdt_resource r_resctrl;
446446
u32 num_closid;
447447
unsigned int msr_base;
448-
void (*msr_update) (struct rdt_domain *d, struct msr_param *m,
449-
struct rdt_resource *r);
448+
void (*msr_update)(struct msr_param *m);
450449
unsigned int mon_scale;
451450
unsigned int mbm_width;
452451
unsigned int mbm_cfg_mask;

0 commit comments

Comments
 (0)