[v11,09/10] x86/resctrl: Add support for the files for MON groups only

Message ID 20231003235430.1231238-10-babu.moger@amd.com
State New
Headers
Series x86/resctrl: Miscellaneous resctrl features |

Commit Message

Moger, Babu Oct. 3, 2023, 11:54 p.m. UTC
  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.
This is not a problem because there are no monitoring specific files
with the RFTYPE_MON flag associated with resource groups.

A later patch introduces the first monitoring specific (RFTYPE_MON)
file for resource groups. Ensure that files with the RFTYPE_MON
flag are created for CTRL_MON groups.

Signed-off-by: Babu Moger <babu.moger@amd.com>
Tested-by: Peter Newman <peternewman@google.com>
Reviewed-by: Peter Newman <peternewman@google.com>
Tested-by: Tan Shaopeng <tan.shaopeng@jp.fujitsu.com>
Reviewed-by: Tan Shaopeng <tan.shaopeng@jp.fujitsu.com>
Reviewed-by: Fenghua Yu <fenghua.yu@intel.com>
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
---
 arch/x86/kernel/cpu/resctrl/rdtgroup.c | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)
  

Comments

Reinette Chatre Oct. 6, 2023, 5:53 p.m. UTC | #1
Hi Babu,

On 10/3/2023 4:54 PM, Babu Moger wrote:
> 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.
> This is not a problem because there are no monitoring specific files
> with the RFTYPE_MON flag associated with resource groups.
> 
> A later patch introduces the first monitoring specific (RFTYPE_MON)
> file for resource groups. Ensure that files with the RFTYPE_MON
> flag are created for CTRL_MON groups.
> 
> Signed-off-by: Babu Moger <babu.moger@amd.com>
> Tested-by: Peter Newman <peternewman@google.com>
> Reviewed-by: Peter Newman <peternewman@google.com>
> Tested-by: Tan Shaopeng <tan.shaopeng@jp.fujitsu.com>
> Reviewed-by: Tan Shaopeng <tan.shaopeng@jp.fujitsu.com>
> Reviewed-by: Fenghua Yu <fenghua.yu@intel.com>
> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
> ---

Thank you.

Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>

I believe this series is ready for inclusion. There is a conflict between
this series and Maciej's non-contiguous work [1] that is also ready for
inclusion. We could wait for outcome of next level review to determine
who will need to rebase. It may help to provide a snippet of the conflict
resolution in anticipation of Maciej's series being merged first (I will
propose the same to Maciej for the scenario of this work merged first).

Reinette

[1] https://lore.kernel.org/lkml/cover.1696493034.git.maciej.wieczor-retman@intel.com/
  
Moger, Babu Oct. 6, 2023, 8:49 p.m. UTC | #2
Hi Reinette,

On 10/6/2023 12:53 PM, Reinette Chatre wrote:
> Hi Babu,
>
> On 10/3/2023 4:54 PM, Babu Moger wrote:
>> 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.
>> This is not a problem because there are no monitoring specific files
>> with the RFTYPE_MON flag associated with resource groups.
>>
>> A later patch introduces the first monitoring specific (RFTYPE_MON)
>> file for resource groups. Ensure that files with the RFTYPE_MON
>> flag are created for CTRL_MON groups.
>>
>> Signed-off-by: Babu Moger <babu.moger@amd.com>
>> Tested-by: Peter Newman <peternewman@google.com>
>> Reviewed-by: Peter Newman <peternewman@google.com>
>> Tested-by: Tan Shaopeng <tan.shaopeng@jp.fujitsu.com>
>> Reviewed-by: Tan Shaopeng <tan.shaopeng@jp.fujitsu.com>
>> Reviewed-by: Fenghua Yu <fenghua.yu@intel.com>
>> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
>> ---
> Thank you.
>
> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
>
> I believe this series is ready for inclusion. There is a conflict between
> this series and Maciej's non-contiguous work [1] that is also ready for
> inclusion. We could wait for outcome of next level review to determine
> who will need to rebase. It may help to provide a snippet of the conflict
> resolution in anticipation of Maciej's series being merged first (I will
> propose the same to Maciej for the scenario of this work merged first).

I had a minor comment on Maciej's patch.

https://lore.kernel.org/lkml/fd2309d5-ea56-abed-5c3e-a8a038b07d9e@amd.com/

I will respond to his patch 3 with the conflict resolution.

Thanks

Babu

>
> Reinette
>
> [1] https://lore.kernel.org/lkml/cover.1696493034.git.maciej.wieczor-retman@intel.com/
  
Reinette Chatre Oct. 6, 2023, 9:01 p.m. UTC | #3
Hi Babu,

On 10/6/2023 1:49 PM, Moger, Babu wrote:
> Hi Reinette,
> 
> On 10/6/2023 12:53 PM, Reinette Chatre wrote:
>> Hi Babu,
>>
>> On 10/3/2023 4:54 PM, Babu Moger wrote:
>>> 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.
>>> This is not a problem because there are no monitoring specific files
>>> with the RFTYPE_MON flag associated with resource groups.
>>>
>>> A later patch introduces the first monitoring specific (RFTYPE_MON)
>>> file for resource groups. Ensure that files with the RFTYPE_MON
>>> flag are created for CTRL_MON groups.
>>>
>>> Signed-off-by: Babu Moger <babu.moger@amd.com>
>>> Tested-by: Peter Newman <peternewman@google.com>
>>> Reviewed-by: Peter Newman <peternewman@google.com>
>>> Tested-by: Tan Shaopeng <tan.shaopeng@jp.fujitsu.com>
>>> Reviewed-by: Tan Shaopeng <tan.shaopeng@jp.fujitsu.com>
>>> Reviewed-by: Fenghua Yu <fenghua.yu@intel.com>
>>> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
>>> ---
>> Thank you.
>>
>> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
>>
>> I believe this series is ready for inclusion. There is a conflict between
>> this series and Maciej's non-contiguous work [1] that is also ready for
>> inclusion. We could wait for outcome of next level review to determine
>> who will need to rebase. It may help to provide a snippet of the conflict
>> resolution in anticipation of Maciej's series being merged first (I will
>> propose the same to Maciej for the scenario of this work merged first).
> 
> I had a minor comment on Maciej's patch.
> 
> https://lore.kernel.org/lkml/fd2309d5-ea56-abed-5c3e-a8a038b07d9e@amd.com/

ok, thank you for reviewing that work.

> I will respond to his patch 3 with the conflict resolution.
> 
Thank you. We'll wait for next level of review to learn how best
to approach this. We do not know which series will be considered/merged
first. 

Reinette
  
Borislav Petkov Oct. 9, 2023, 6 p.m. UTC | #4
On Tue, Oct 03, 2023 at 06:54:29PM -0500, Babu Moger wrote:
> A later patch introduces the first monitoring specific (RFTYPE_MON)
> file for resource groups. Ensure that files with the RFTYPE_MON
> flag are created for CTRL_MON groups.

You don't need that paragraph here. The "later patch" can talk about it.
  
Moger, Babu Oct. 9, 2023, 10:08 p.m. UTC | #5
Hi Boris,

On 10/9/2023 1:00 PM, Borislav Petkov wrote:
> On Tue, Oct 03, 2023 at 06:54:29PM -0500, Babu Moger wrote:
>> A later patch introduces the first monitoring specific (RFTYPE_MON)
>> file for resource groups. Ensure that files with the RFTYPE_MON
>> flag are created for CTRL_MON groups.
> You don't need that paragraph here. The "later patch" can talk about it.

Sure. Will do.

Thanks

Babu
  

Patch

diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index 953b082cec8a..55d1b90f460e 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -2533,6 +2533,7 @@  static void schemata_list_destroy(void)
 static int rdt_get_tree(struct fs_context *fc)
 {
 	struct rdt_fs_context *ctx = rdt_fc2context(fc);
+	unsigned long flags = RFTYPE_CTRL_BASE;
 	struct rdt_domain *dom;
 	struct rdt_resource *r;
 	int ret;
@@ -2563,7 +2564,10 @@  static int rdt_get_tree(struct fs_context *fc)
 
 	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)
 		goto out_schemata_free;
 
@@ -3253,8 +3257,8 @@  static int mkdir_rdt_prepare(struct kernfs_node *parent_kn,
 			     enum rdt_group_type rtype, struct rdtgroup **r)
 {
 	struct rdtgroup *prdtgrp, *rdtgrp;
+	unsigned long files = 0;
 	struct kernfs_node *kn;
-	uint files = 0;
 	int ret;
 
 	prdtgrp = rdtgroup_kn_lock_live(parent_kn);
@@ -3306,10 +3310,13 @@  static int mkdir_rdt_prepare(struct kernfs_node *parent_kn,
 		goto out_destroy;
 	}
 
-	if (rtype == RDTCTRL_GROUP)
+	if (rtype == RDTCTRL_GROUP) {
 		files = RFTYPE_BASE | RFTYPE_CTRL;
-	else
+		if (rdt_mon_capable)
+			files |= RFTYPE_MON;
+	} else {
 		files = RFTYPE_BASE | RFTYPE_MON;
+	}
 
 	ret = rdtgroup_add_files(kn, files);
 	if (ret) {