x86/resctrl: Swizzle rdt_resource and resctrl_schema in pseudo_lock_region
struct pseudo_lock_region points to the rdt_resource. Once the resources are merged, this won't be unique. The resource name is moving into the schema, so that the filesystem portions of resctrl can generate it. Swap pseudo_lock_region's rdt_resource pointer for a schema pointer. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov <bp@suse.de> Reviewed-by: Jamie Iles <jamie@nuviainc.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Tested-by: Babu Moger <babu.moger@amd.com> Link: https://lkml.kernel.org/r/20210728170637.25610-11-james.morse@arm.com
This commit is contained in:
Родитель
1c290682c0
Коммит
32150edd3f
|
@ -227,7 +227,7 @@ next:
|
|||
* the required initialization for single
|
||||
* region and return.
|
||||
*/
|
||||
rdtgrp->plr->r = r;
|
||||
rdtgrp->plr->s = s;
|
||||
rdtgrp->plr->d = d;
|
||||
rdtgrp->plr->cbm = d->new_ctrl;
|
||||
d->plr = rdtgrp->plr;
|
||||
|
@ -426,7 +426,7 @@ int rdtgroup_schemata_show(struct kernfs_open_file *of,
|
|||
ret = -ENODEV;
|
||||
} else {
|
||||
seq_printf(s, "%s:%d=%x\n",
|
||||
rdtgrp->plr->r->name,
|
||||
rdtgrp->plr->s->res->name,
|
||||
rdtgrp->plr->d->id,
|
||||
rdtgrp->plr->cbm);
|
||||
}
|
||||
|
|
|
@ -163,8 +163,8 @@ struct mongroup {
|
|||
|
||||
/**
|
||||
* struct pseudo_lock_region - pseudo-lock region information
|
||||
* @r: RDT resource to which this pseudo-locked region
|
||||
* belongs
|
||||
* @s: Resctrl schema for the resource to which this
|
||||
* pseudo-locked region belongs
|
||||
* @d: RDT domain to which this pseudo-locked region
|
||||
* belongs
|
||||
* @cbm: bitmask of the pseudo-locked region
|
||||
|
@ -184,7 +184,7 @@ struct mongroup {
|
|||
* @pm_reqs: Power management QoS requests related to this region
|
||||
*/
|
||||
struct pseudo_lock_region {
|
||||
struct rdt_resource *r;
|
||||
struct resctrl_schema *s;
|
||||
struct rdt_domain *d;
|
||||
u32 cbm;
|
||||
wait_queue_head_t lock_thread_wq;
|
||||
|
|
|
@ -250,7 +250,7 @@ static void pseudo_lock_region_clear(struct pseudo_lock_region *plr)
|
|||
plr->line_size = 0;
|
||||
kfree(plr->kmem);
|
||||
plr->kmem = NULL;
|
||||
plr->r = NULL;
|
||||
plr->s = NULL;
|
||||
if (plr->d)
|
||||
plr->d->plr = NULL;
|
||||
plr->d = NULL;
|
||||
|
@ -294,10 +294,10 @@ static int pseudo_lock_region_init(struct pseudo_lock_region *plr)
|
|||
|
||||
ci = get_cpu_cacheinfo(plr->cpu);
|
||||
|
||||
plr->size = rdtgroup_cbm_to_size(plr->r, plr->d, plr->cbm);
|
||||
plr->size = rdtgroup_cbm_to_size(plr->s->res, plr->d, plr->cbm);
|
||||
|
||||
for (i = 0; i < ci->num_leaves; i++) {
|
||||
if (ci->info_list[i].level == plr->r->cache_level) {
|
||||
if (ci->info_list[i].level == plr->s->res->cache_level) {
|
||||
plr->line_size = ci->info_list[i].coherency_line_size;
|
||||
return 0;
|
||||
}
|
||||
|
@ -800,7 +800,7 @@ bool rdtgroup_cbm_overlaps_pseudo_locked(struct rdt_domain *d, unsigned long cbm
|
|||
unsigned long cbm_b;
|
||||
|
||||
if (d->plr) {
|
||||
cbm_len = d->plr->r->cache.cbm_len;
|
||||
cbm_len = d->plr->s->res->cache.cbm_len;
|
||||
cbm_b = d->plr->cbm;
|
||||
if (bitmap_intersects(&cbm, &cbm_b, cbm_len))
|
||||
return true;
|
||||
|
|
|
@ -1439,8 +1439,8 @@ static int rdtgroup_size_show(struct kernfs_open_file *of,
|
|||
ret = -ENODEV;
|
||||
} else {
|
||||
seq_printf(s, "%*s:", max_name_width,
|
||||
rdtgrp->plr->r->name);
|
||||
size = rdtgroup_cbm_to_size(rdtgrp->plr->r,
|
||||
rdtgrp->plr->s->res->name);
|
||||
size = rdtgroup_cbm_to_size(rdtgrp->plr->s->res,
|
||||
rdtgrp->plr->d,
|
||||
rdtgrp->plr->cbm);
|
||||
seq_printf(s, "%d=%u\n", rdtgrp->plr->d->id, size);
|
||||
|
|
Загрузка…
Ссылка в новой задаче