Re: [PATCH v13 04/10] x86/resctrl: Add comments on RFTYPE flags hierarchy

From: Moger, Babu
Date: Sat Oct 14 2023 - 19:07:16 EST


Hi Reinette,

On 10/13/2023 4:39 PM, Moger, Babu wrote:
Hi Reinette,

On 10/13/2023 4:23 PM, Reinette Chatre wrote:
Hi Babu,

On 10/13/2023 1:25 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@xxxxxxx>
---
v13: Fixed the format issues in the documentation. Needed few minor format
      changes to address the syntax issues.(Reinette)
      Removed "Reviewed-by and Tested-by" flags as the patch has changed.

v12: Moved the comments from arch/x86/kernel/cpu/resctrl/internal.h
      to Documentation/arch/x86/resctrl.rst. (Boris)
---
  Documentation/arch/x86/resctrl.rst | 64 ++++++++++++++++++++++++++++++
  1 file changed, 64 insertions(+)

diff --git a/Documentation/arch/x86/resctrl.rst b/Documentation/arch/x86/resctrl.rst
index 178ab1d8f747..1163da74f734 100644
--- a/Documentation/arch/x86/resctrl.rst
+++ b/Documentation/arch/x86/resctrl.rst
@@ -369,6 +369,70 @@ When monitoring is enabled all MON groups will also contain:
      the sum for all tasks in the CTRL_MON group and all tasks in
      MON groups. Please see example section for more details on usage.
  +RESCTRL filesystem implementation notes
+=======================================
+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
+
Could you please do a "make htmldocs" and then ensure that the output looks sane?
The resulting output does not look right to me. For example, the above turns into
a single line that looks like:

/sys/fs/resctrl/ | -> info | | (Top level directory named "info". Contains files that | provide details on control and monitoring resources") | -> base


The spacing also looks off when viewing this in html.

I have fixed the all the format issues. Please let me know if it looks ok. I will send the final version after that.

Attached the patch and also added the diff inline.

Thanks

diff --git a/Documentation/arch/x86/resctrl.rst b/Documentation/arch/x86/resctrl.rst
index 178ab1d8f747..e990272e9a4f 100644
--- a/Documentation/arch/x86/resctrl.rst
+++ b/Documentation/arch/x86/resctrl.rst
@@ -396,6 +396,67 @@ Resource monitoring rules
 3) Otherwise RDT events for the task will be reported in the root level
    "mon_data" group.

+RESCTRL filesystem implementation notes
+---------------------------------------
+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 the directories
+                     below for better understanding. The RFTYPE flags are defined
+                     in arch/x86/kernel/cpu/resctrl/internal.h.
+
+"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, L2CODE, L2DATA, L3CODE, L3DATA
+                          File: num_closids
+
+                       --> RFTYPE_RES_CACHE (Files for cache control resources)
+                           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 for CTRL group)
+                   Files: mode, schemata, size

 Notes on cache occupancy monitoring and control
 ===============================================

commit 6fc3d73890386c18b69568444411ac9763391752
Author: Babu Moger <babu.moger@xxxxxxx>
Date: Fri Oct 13 10:45:13 2023 -0500

x86/resctrl: Add comments on RFTYPE flags hierarchy

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@xxxxxxx>
---
v13: Fixed the format issues in the documentation. Needed few minor format
changes to address the syntax issues.(Reinette)
Removed "Reviewed-by and Tested-by" flags as the patch has changed.

v12: Moved the comments from arch/x86/kernel/cpu/resctrl/internal.h
to Documentation/arch/x86/resctrl.rst. (Boris)

diff --git a/Documentation/arch/x86/resctrl.rst b/Documentation/arch/x86/resctrl.rst
index 178ab1d8f747..e990272e9a4f 100644
--- a/Documentation/arch/x86/resctrl.rst
+++ b/Documentation/arch/x86/resctrl.rst
@@ -396,6 +396,67 @@ Resource monitoring rules
3) Otherwise RDT events for the task will be reported in the root level
"mon_data" group.

+RESCTRL filesystem implementation notes
+---------------------------------------
+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 the directories
+ below for better understanding. The RFTYPE flags are defined
+ in arch/x86/kernel/cpu/resctrl/internal.h.
+
+"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, L2CODE, L2DATA, L3CODE, L3DATA
+ File: num_closids
+
+ --> RFTYPE_RES_CACHE (Files for cache control resources)
+ 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 for CTRL group)
+ Files: mode, schemata, size

Notes on cache occupancy monitoring and control
===============================================