[PATCH v8 4/8] x86/resctrl: Add comments on RFTYPE flags hierarchy

Babu Moger posted 8 patches 2 years, 3 months ago
There is a newer version of this series
[PATCH v8 4/8] x86/resctrl: Add comments on RFTYPE flags hierarchy
Posted by Babu Moger 2 years, 3 months ago
resctrl uses RFTYPE flags for creating resctrl directory structure.

Definitions and directory structures are not documented. Add
comments to improve the readability and help future additions.

Signed-off-by: Babu Moger <babu.moger@amd.com>
---
 arch/x86/kernel/cpu/resctrl/internal.h | 58 ++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
index 2051179a3b91..b09e7abd1299 100644
--- a/arch/x86/kernel/cpu/resctrl/internal.h
+++ b/arch/x86/kernel/cpu/resctrl/internal.h
@@ -240,6 +240,64 @@ struct rdtgroup {
 
 /*
  * Define the file type flags for base and info directories.
+ *
+ * RESCTRL filesystem has two main components
+ *	a. info
+ *	b. base
+ *
+ * /sys/fs/resctrl/
+ *	|
+ *	--> info (Top level directory named "info". Contains files that
+ *	|	  provide details on control and monitoring resources.)
+ *	|
+ *	--> base (Root directory associated with default resource group
+ *		  as well as directories created by user for MON and CTRL
+ *		  groups. Contains files to interact with MON and CTRL
+ *		  groups.)
+ *
+ *	Note: resctrl uses flags for files, not for directories.
+ *	      Directories are created based on the resource type. Added
+ *	      directories below for better understanding.
+ *
+ *	info directory structure
+ *	------------------------------------------------------------------
+ *	--> RFTYPE_INFO
+ *	    directory: info
+ *		--> RFTYPE_TOP (Files in top level of info directory)
+ *		    File: last_cmd_status
+ *
+ *		--> RFTYPE_MON (Files for all monitoring resources)
+ *		    Directory: L3_MON
+ *		        Files: mon_features, num_rmids
+ *
+ *			--> RFTYPE_RES_CACHE (Files for cache monitoring resources)
+ *			    Directory: L3_MON
+ *			        Files: max_threshold_occupancy,
+ *			               mbm_total_bytes_config,
+ *			               mbm_local_bytes_config
+ *
+ *		--> RFTYPE_CTRL (Files for all control resources)
+ *		    Directories: L2, L3, MB, SMBA
+ *		           File: num_closids
+ *
+ *			--> RFTYPE_RES_CACHE (Files for cache control resources)
+ *			    Directories: L2, L3
+ *			          Files: bit_usage, cbm_mask, min_cbm_bits,
+ *			                 shareable_bits
+ *
+ *			--> RFTYPE_RES_MB (Files for memory control resources)
+ *			    Directories: MB, SMBA
+ *			          Files: bandwidth_gran, delay_linear,
+ *			                 min_bandwidth, thread_throttle_mode
+ *
+ *	base directory structure
+ *	------------------------------------------------------------------
+ *	--> RFTYPE_BASE (Files common for both MON and CTRL groups)
+ *	    Files: cpus, cpus_list, tasks
+ *
+ *		--> RFTYPE_CTRL (Files only for CTRL group)
+ *		    Files: mode, schemata, size
+ *
  */
 #define RFTYPE_INFO			BIT(0)
 #define RFTYPE_BASE			BIT(1)
-- 
2.34.1
Re: [PATCH v8 4/8] x86/resctrl: Add comments on RFTYPE flags hierarchy
Posted by Fenghua Yu 2 years, 3 months ago
Hi, Babu,

On 8/21/23 16:30, Babu Moger wrote:
> resctrl uses RFTYPE flags for creating resctrl directory structure.
> 
> Definitions and directory structures are not documented. Add
> comments to improve the readability and help future additions.
> 
> Signed-off-by: Babu Moger <babu.moger@amd.com>
> ---
>   arch/x86/kernel/cpu/resctrl/internal.h | 58 ++++++++++++++++++++++++++
>   1 file changed, 58 insertions(+)
> 
> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
> index 2051179a3b91..b09e7abd1299 100644
> --- a/arch/x86/kernel/cpu/resctrl/internal.h
> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
> @@ -240,6 +240,64 @@ struct rdtgroup {
>   
>   /*
>    * Define the file type flags for base and info directories.
> + *
> + * RESCTRL filesystem has two main components
> + *	a. info
> + *	b. base
> + *
> + * /sys/fs/resctrl/
> + *	|
> + *	--> info (Top level directory named "info". Contains files that
> + *	|	  provide details on control and monitoring resources.)
> + *	|
> + *	--> base (Root directory associated with default resource group
> + *		  as well as directories created by user for MON and CTRL
> + *		  groups. Contains files to interact with MON and CTRL
> + *		  groups.)
> + *
> + *	Note: resctrl uses flags for files, not for directories.
> + *	      Directories are created based on the resource type. Added
> + *	      directories below for better understanding.
> + *
> + *	info directory structure
> + *	------------------------------------------------------------------
> + *	--> RFTYPE_INFO
> + *	    directory: info
> + *		--> RFTYPE_TOP (Files in top level of info directory)
> + *		    File: last_cmd_status
> + *
> + *		--> RFTYPE_MON (Files for all monitoring resources)
> + *		    Directory: L3_MON
> + *		        Files: mon_features, num_rmids
> + *
> + *			--> RFTYPE_RES_CACHE (Files for cache monitoring resources)
> + *			    Directory: L3_MON
> + *			        Files: max_threshold_occupancy,
> + *			               mbm_total_bytes_config,
> + *			               mbm_local_bytes_config
> + *
> + *		--> RFTYPE_CTRL (Files for all control resources)
> + *		    Directories: L2, L3, MB, SMBA

L2 CDP and L3 CDP have different dirs. So need to add them here:

  + *		    Directories: L2, L3, MB, SMBA, L2CODE, L2DATA, L3CODE, L3DATA 
(L*CODE and L*DATA only available when CDP is enabled)

> + *		           File: num_closids
> + *
> + *			--> RFTYPE_RES_CACHE (Files for cache control resources)
> + *			    Directories: L2, L3

 > + *			    Directories: L2, L3

+ *			    Directories: L2, L3, L2CODE, L2DATA, L3CODE, L3DATA

> + *			          Files: bit_usage, cbm_mask, min_cbm_bits,
> + *			                 shareable_bits
> + *
> + *			--> RFTYPE_RES_MB (Files for memory control resources)
> + *			    Directories: MB, SMBA
> + *			          Files: bandwidth_gran, delay_linear,
> + *			                 min_bandwidth, thread_throttle_mode
> + *
> + *	base directory structure
> + *	------------------------------------------------------------------
> + *	--> RFTYPE_BASE (Files common for both MON and CTRL groups)
> + *	    Files: cpus, cpus_list, tasks
> + *
> + *		--> RFTYPE_CTRL (Files only for CTRL group)
> + *		    Files: mode, schemata, size
> + *
>    */
>   #define RFTYPE_INFO			BIT(0)
>   #define RFTYPE_BASE			BIT(1)

Thanks.

-Fenghua
Re: [PATCH v8 4/8] x86/resctrl: Add comments on RFTYPE flags hierarchy
Posted by Moger, Babu 2 years, 3 months ago
Hi Fenghua,

On 9/1/2023 5:31 PM, Fenghua Yu wrote:
> Hi, Babu,
>
> On 8/21/23 16:30, Babu Moger wrote:
>> resctrl uses RFTYPE flags for creating resctrl directory structure.
>>
>> Definitions and directory structures are not documented. Add
>> comments to improve the readability and help future additions.
>>
>> Signed-off-by: Babu Moger <babu.moger@amd.com>
>> ---
>>   arch/x86/kernel/cpu/resctrl/internal.h | 58 ++++++++++++++++++++++++++
>>   1 file changed, 58 insertions(+)
>>
>> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h 
>> b/arch/x86/kernel/cpu/resctrl/internal.h
>> index 2051179a3b91..b09e7abd1299 100644
>> --- a/arch/x86/kernel/cpu/resctrl/internal.h
>> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
>> @@ -240,6 +240,64 @@ struct rdtgroup {
>>     /*
>>    * Define the file type flags for base and info directories.
>> + *
>> + * RESCTRL filesystem has two main components
>> + *    a. info
>> + *    b. base
>> + *
>> + * /sys/fs/resctrl/
>> + *    |
>> + *    --> info (Top level directory named "info". Contains files that
>> + *    |      provide details on control and monitoring resources.)
>> + *    |
>> + *    --> base (Root directory associated with default resource group
>> + *          as well as directories created by user for MON and CTRL
>> + *          groups. Contains files to interact with MON and CTRL
>> + *          groups.)
>> + *
>> + *    Note: resctrl uses flags for files, not for directories.
>> + *          Directories are created based on the resource type. Added
>> + *          directories below for better understanding.
>> + *
>> + *    info directory structure
>> + * ------------------------------------------------------------------
>> + *    --> RFTYPE_INFO
>> + *        directory: info
>> + *        --> RFTYPE_TOP (Files in top level of info directory)
>> + *            File: last_cmd_status
>> + *
>> + *        --> RFTYPE_MON (Files for all monitoring resources)
>> + *            Directory: L3_MON
>> + *                Files: mon_features, num_rmids
>> + *
>> + *            --> RFTYPE_RES_CACHE (Files for cache monitoring 
>> resources)
>> + *                Directory: L3_MON
>> + *                    Files: max_threshold_occupancy,
>> + *                           mbm_total_bytes_config,
>> + *                           mbm_local_bytes_config
>> + *
>> + *        --> RFTYPE_CTRL (Files for all control resources)
>> + *            Directories: L2, L3, MB, SMBA
>
> L2 CDP and L3 CDP have different dirs. So need to add them here:
>
>  + *            Directories: L2, L3, MB, SMBA, L2CODE, L2DATA, L3CODE, 
> L3DATA (L*CODE and L*DATA only available when CDP is enabled)
>
Sure.


>> + *                   File: num_closids
>> + *
>> + *            --> RFTYPE_RES_CACHE (Files for cache control resources)
>> + *                Directories: L2, L3
>
> > + *                Directories: L2, L3
>
> + *                Directories: L2, L3, L2CODE, L2DATA, L3CODE, L3DATA
>
Yes. Sure.

Thank you

Babu


Re: [PATCH v8 4/8] x86/resctrl: Add comments on RFTYPE flags hierarchy
Posted by Reinette Chatre 2 years, 3 months ago
Hi Babu,

On 8/21/2023 4:30 PM, Babu Moger wrote:
> resctrl uses RFTYPE flags for creating resctrl directory structure.
> 
> Definitions and directory structures are not documented. Add
> comments to improve the readability and help future additions.
> 
> Signed-off-by: Babu Moger <babu.moger@amd.com>

After the typo that Shaopeng pointed out is fixed you
can add:

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

Reinette
Re: [PATCH v8 4/8] x86/resctrl: Add comments on RFTYPE flags hierarchy
Posted by Moger, Babu 2 years, 3 months ago
Hi Reinette,

On 8/29/23 15:08, Reinette Chatre wrote:
> Hi Babu,
> 
> On 8/21/2023 4:30 PM, Babu Moger wrote:
>> resctrl uses RFTYPE flags for creating resctrl directory structure.
>>
>> Definitions and directory structures are not documented. Add
>> comments to improve the readability and help future additions.
>>
>> Signed-off-by: Babu Moger <babu.moger@amd.com>
> 
> After the typo that Shaopeng pointed out is fixed you
> can add:

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

-- 
Thanks
Babu Moger
RE: [PATCH v8 4/8] x86/resctrl: Add comments on RFTYPE flags hierarchy
Posted by Shaopeng Tan (Fujitsu) 2 years, 3 months ago
Hi Babu,


> resctrl uses RFTYPE flags for creating resctrl directory structure.
> 
> Definitions and directory structures are not documented. Add comments to
> improve the readability and help future additions.
> 
> Signed-off-by: Babu Moger <babu.moger@amd.com>
> ---
>  arch/x86/kernel/cpu/resctrl/internal.h | 58
> ++++++++++++++++++++++++++
>  1 file changed, 58 insertions(+)
> 
> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h
> b/arch/x86/kernel/cpu/resctrl/internal.h
> index 2051179a3b91..b09e7abd1299 100644
> --- a/arch/x86/kernel/cpu/resctrl/internal.h
> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
> @@ -240,6 +240,64 @@ struct rdtgroup {
> 
>  /*
>   * Define the file type flags for base and info directories.
> + *
> + * RESCTRL filesystem has two main components
> + *	a. info
> + *	b. base
> + *
> + * /sys/fs/resctrl/
> + *	|
> + *	--> info (Top level directory named "info". Contains files that
> + *	|	  provide details on control and monitoring resources.)
> + *	|
> + *	--> base (Root directory associated with default resource group
> + *		  as well as directories created by user for MON and CTRL
> + *		  groups. Contains files to interact with MON and CTRL
> + *		  groups.)
> + *
> + *	Note: resctrl uses flags for files, not for directories.
> + *	      Directories are created based on the resource type. Added
> + *	      directories below for better understanding.
> + *
> + *	info directory structure
> + *	------------------------------------------------------------------
> + *	--> RFTYPE_INFO
> + *	    directory: info
"directory" ->"Directory"

> + *		--> RFTYPE_TOP (Files in top level of info directory)
> + *		    File: last_cmd_status
> + *
> + *		--> RFTYPE_MON (Files for all monitoring resources)
> + *		    Directory: L3_MON
> + *		        Files: mon_features, num_rmids
> + *
> + *			--> RFTYPE_RES_CACHE (Files for cache monitoring
> resources)
> + *			    Directory: L3_MON
> + *			        Files: max_threshold_occupancy,
> + *			               mbm_total_bytes_config,
> + *			               mbm_local_bytes_config
> + *
> + *		--> RFTYPE_CTRL (Files for all control resources)
> + *		    Directories: L2, L3, MB, SMBA
> + *		           File: num_closids
> + *
> + *			--> RFTYPE_RES_CACHE (Files for cache control
> resources)
> + *			    Directories: L2, L3
> + *			          Files: bit_usage, cbm_mask,
> min_cbm_bits,
> + *			                 shareable_bits
> + *
> + *			--> RFTYPE_RES_MB (Files for memory control
> resources)
> + *			    Directories: MB, SMBA
> + *			          Files: bandwidth_gran, delay_linear,
> + *			                 min_bandwidth,
> thread_throttle_mode
> + *
> + *	base directory structure
> + *	------------------------------------------------------------------
> + *	--> RFTYPE_BASE (Files common for both MON and CTRL groups)
> + *	    Files: cpus, cpus_list, tasks
> + *
> + *		--> RFTYPE_CTRL (Files only for CTRL group)
> + *		    Files: mode, schemata, size
I think this is reinette's advice,
but "		--> RFTYPE_CTRL (Files only for CTRL group)" looks like a subdirectory.
Is this expected?

Best regards,
Shaopeng TAN
Re: RE: [PATCH v8 4/8] x86/resctrl: Add comments on RFTYPE flags hierarchy
Posted by Moger, Babu 2 years, 3 months ago
Hi Shaopeng,

On 8/23/23 02:03, Shaopeng Tan (Fujitsu) wrote:
> Hi Babu,
> 
> 
>> resctrl uses RFTYPE flags for creating resctrl directory structure.
>>
>> Definitions and directory structures are not documented. Add comments to
>> improve the readability and help future additions.
>>
>> Signed-off-by: Babu Moger <babu.moger@amd.com>
>> ---
>>  arch/x86/kernel/cpu/resctrl/internal.h | 58
>> ++++++++++++++++++++++++++
>>  1 file changed, 58 insertions(+)
>>
>> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h
>> b/arch/x86/kernel/cpu/resctrl/internal.h
>> index 2051179a3b91..b09e7abd1299 100644
>> --- a/arch/x86/kernel/cpu/resctrl/internal.h
>> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
>> @@ -240,6 +240,64 @@ struct rdtgroup {
>>
>>  /*
>>   * Define the file type flags for base and info directories.
>> + *
>> + * RESCTRL filesystem has two main components
>> + *	a. info
>> + *	b. base
>> + *
>> + * /sys/fs/resctrl/
>> + *	|
>> + *	--> info (Top level directory named "info". Contains files that
>> + *	|	  provide details on control and monitoring resources.)
>> + *	|
>> + *	--> base (Root directory associated with default resource group
>> + *		  as well as directories created by user for MON and CTRL
>> + *		  groups. Contains files to interact with MON and CTRL
>> + *		  groups.)
>> + *
>> + *	Note: resctrl uses flags for files, not for directories.
>> + *	      Directories are created based on the resource type. Added
>> + *	      directories below for better understanding.
>> + *
>> + *	info directory structure
>> + *	------------------------------------------------------------------
>> + *	--> RFTYPE_INFO
>> + *	    directory: info
> "directory" ->"Directory"

Sorry.. I missed that. Will fix.

> 
>> + *		--> RFTYPE_TOP (Files in top level of info directory)
>> + *		    File: last_cmd_status
>> + *
>> + *		--> RFTYPE_MON (Files for all monitoring resources)
>> + *		    Directory: L3_MON
>> + *		        Files: mon_features, num_rmids
>> + *
>> + *			--> RFTYPE_RES_CACHE (Files for cache monitoring
>> resources)
>> + *			    Directory: L3_MON
>> + *			        Files: max_threshold_occupancy,
>> + *			               mbm_total_bytes_config,
>> + *			               mbm_local_bytes_config
>> + *
>> + *		--> RFTYPE_CTRL (Files for all control resources)
>> + *		    Directories: L2, L3, MB, SMBA
>> + *		           File: num_closids
>> + *
>> + *			--> RFTYPE_RES_CACHE (Files for cache control
>> resources)
>> + *			    Directories: L2, L3
>> + *			          Files: bit_usage, cbm_mask,
>> min_cbm_bits,
>> + *			                 shareable_bits
>> + *
>> + *			--> RFTYPE_RES_MB (Files for memory control
>> resources)
>> + *			    Directories: MB, SMBA
>> + *			          Files: bandwidth_gran, delay_linear,
>> + *			                 min_bandwidth,
>> thread_throttle_mode
>> + *
>> + *	base directory structure
>> + *	------------------------------------------------------------------
>> + *	--> RFTYPE_BASE (Files common for both MON and CTRL groups)
>> + *	    Files: cpus, cpus_list, tasks
>> + *
>> + *		--> RFTYPE_CTRL (Files only for CTRL group)
>> + *		    Files: mode, schemata, size
> I think this is reinette's advice,
> but "		--> RFTYPE_CTRL (Files only for CTRL group)" looks like a subdirectory.
> Is this expected?

Yes. It is expected. We have two combinations here.
1. RFTYPE_BASE
2. RFTYPE_BASE | RFTYPE_CTRL

Because it is OR'd with two flags, I would say it is displayed as expected.

Thanks
Babu Moger