Commit 918f211b authored by Babu Moger's avatar Babu Moger Committed by Borislav Petkov (AMD)

x86/resctrl: Add support for the files of MON groups only

Files unique to monitoring groups have the RFTYPE_MON flag. When a new
monitoring group is created the resctrl files with flags RFTYPE_BASE
(files common to all resource groups) and RFTYPE_MON (files unique to
monitoring groups) are created to support interacting with the new
monitoring group.

A resource group can support both monitoring and control, also termed
a CTRL_MON resource group. CTRL_MON groups should get both monitoring
and control resctrl files but that is not the case. Only the
RFTYPE_BASE and RFTYPE_CTRL files are created for CTRL_MON groups.

Ensure that files with the RFTYPE_MON flag are created for CTRL_MON groups.
Signed-off-by: default avatarBabu Moger <babu.moger@amd.com>
Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: default avatarPeter Newman <peternewman@google.com>
Reviewed-by: default avatarTan Shaopeng <tan.shaopeng@jp.fujitsu.com>
Reviewed-by: default avatarFenghua Yu <fenghua.yu@intel.com>
Reviewed-by: default avatarIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Reviewed-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Tested-by: default avatarPeter Newman <peternewman@google.com>
Tested-by: default avatarTan Shaopeng <tan.shaopeng@jp.fujitsu.com>
Link: https://lore.kernel.org/r/20231017002308.134480-9-babu.moger@amd.com
parent ca8dad22
...@@ -2551,6 +2551,7 @@ static void schemata_list_destroy(void) ...@@ -2551,6 +2551,7 @@ static void schemata_list_destroy(void)
static int rdt_get_tree(struct fs_context *fc) static int rdt_get_tree(struct fs_context *fc)
{ {
struct rdt_fs_context *ctx = rdt_fc2context(fc); struct rdt_fs_context *ctx = rdt_fc2context(fc);
unsigned long flags = RFTYPE_CTRL_BASE;
struct rdt_domain *dom; struct rdt_domain *dom;
struct rdt_resource *r; struct rdt_resource *r;
int ret; int ret;
...@@ -2581,7 +2582,10 @@ static int rdt_get_tree(struct fs_context *fc) ...@@ -2581,7 +2582,10 @@ static int rdt_get_tree(struct fs_context *fc)
closid_init(); closid_init();
ret = rdtgroup_add_files(rdtgroup_default.kn, RFTYPE_CTRL_BASE); if (rdt_mon_capable)
flags |= RFTYPE_MON;
ret = rdtgroup_add_files(rdtgroup_default.kn, flags);
if (ret) if (ret)
goto out_schemata_free; goto out_schemata_free;
...@@ -3271,8 +3275,8 @@ static int mkdir_rdt_prepare(struct kernfs_node *parent_kn, ...@@ -3271,8 +3275,8 @@ static int mkdir_rdt_prepare(struct kernfs_node *parent_kn,
enum rdt_group_type rtype, struct rdtgroup **r) enum rdt_group_type rtype, struct rdtgroup **r)
{ {
struct rdtgroup *prdtgrp, *rdtgrp; struct rdtgroup *prdtgrp, *rdtgrp;
unsigned long files = 0;
struct kernfs_node *kn; struct kernfs_node *kn;
uint files = 0;
int ret; int ret;
prdtgrp = rdtgroup_kn_lock_live(parent_kn); prdtgrp = rdtgroup_kn_lock_live(parent_kn);
...@@ -3324,10 +3328,13 @@ static int mkdir_rdt_prepare(struct kernfs_node *parent_kn, ...@@ -3324,10 +3328,13 @@ static int mkdir_rdt_prepare(struct kernfs_node *parent_kn,
goto out_destroy; goto out_destroy;
} }
if (rtype == RDTCTRL_GROUP) if (rtype == RDTCTRL_GROUP) {
files = RFTYPE_BASE | RFTYPE_CTRL; files = RFTYPE_BASE | RFTYPE_CTRL;
else if (rdt_mon_capable)
files |= RFTYPE_MON;
} else {
files = RFTYPE_BASE | RFTYPE_MON; files = RFTYPE_BASE | RFTYPE_MON;
}
ret = rdtgroup_add_files(kn, files); ret = rdtgroup_add_files(kn, files);
if (ret) { if (ret) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment