mirror of
https://github.com/torvalds/linux.git
synced 2026-05-25 15:41:52 +02:00
x86/resctrl: Refactor mkdir_mondata_subdir() with a helper function
In Sub-NUMA Cluster (SNC) mode Linux must create the monitor files in the original "mon_L3_XX" directories and also in each of the "mon_sub_L3_YY" directories. Refactor mkdir_mondata_subdir() to move the creation of monitoring files into a helper function to avoid the need to duplicate code later. No functional change. 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> Tested-by: Babu Moger <babu.moger@amd.com> Link: https://lore.kernel.org/r/20240628215619.76401-12-tony.luck@intel.com
This commit is contained in:
parent
587edd7069
commit
603cf1e288
|
|
@ -3025,14 +3025,37 @@ static void rmdir_mondata_subdir_allrdtgrp(struct rdt_resource *r,
|
|||
}
|
||||
}
|
||||
|
||||
static int mon_add_all_files(struct kernfs_node *kn, struct rdt_mon_domain *d,
|
||||
struct rdt_resource *r, struct rdtgroup *prgrp)
|
||||
{
|
||||
struct rmid_read rr = {0};
|
||||
union mon_data_bits priv;
|
||||
struct mon_evt *mevt;
|
||||
int ret;
|
||||
|
||||
if (WARN_ON(list_empty(&r->evt_list)))
|
||||
return -EPERM;
|
||||
|
||||
priv.u.rid = r->rid;
|
||||
priv.u.domid = d->hdr.id;
|
||||
list_for_each_entry(mevt, &r->evt_list, list) {
|
||||
priv.u.evtid = mevt->evtid;
|
||||
ret = mon_addfile(kn, mevt->name, priv.priv);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (is_mbm_event(mevt->evtid))
|
||||
mon_event_read(&rr, r, d, prgrp, mevt->evtid, true);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int mkdir_mondata_subdir(struct kernfs_node *parent_kn,
|
||||
struct rdt_mon_domain *d,
|
||||
struct rdt_resource *r, struct rdtgroup *prgrp)
|
||||
{
|
||||
struct rmid_read rr = {0};
|
||||
union mon_data_bits priv;
|
||||
struct kernfs_node *kn;
|
||||
struct mon_evt *mevt;
|
||||
char name[32];
|
||||
int ret;
|
||||
|
||||
|
|
@ -3046,22 +3069,10 @@ static int mkdir_mondata_subdir(struct kernfs_node *parent_kn,
|
|||
if (ret)
|
||||
goto out_destroy;
|
||||
|
||||
if (WARN_ON(list_empty(&r->evt_list))) {
|
||||
ret = -EPERM;
|
||||
ret = mon_add_all_files(kn, d, r, prgrp);
|
||||
if (ret)
|
||||
goto out_destroy;
|
||||
}
|
||||
|
||||
priv.u.rid = r->rid;
|
||||
priv.u.domid = d->hdr.id;
|
||||
list_for_each_entry(mevt, &r->evt_list, list) {
|
||||
priv.u.evtid = mevt->evtid;
|
||||
ret = mon_addfile(kn, mevt->name, priv.priv);
|
||||
if (ret)
|
||||
goto out_destroy;
|
||||
|
||||
if (is_mbm_event(mevt->evtid))
|
||||
mon_event_read(&rr, r, d, prgrp, mevt->evtid, true);
|
||||
}
|
||||
kernfs_activate(kn);
|
||||
return 0;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user