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
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
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
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
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
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
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
© 2016 - 2025 Red Hat, Inc.