[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0c3721ba-b564-733a-16d5-5150d2b7a885@amd.com>
Date: Wed, 3 Aug 2022 10:59:50 -0500
From: "Moger, Babu" <babu.moger@....com>
To: Bagas Sanjaya <bagasdotme@...il.com>
Cc: fenghua.yu@...el.com, reinette.chatre@...el.com,
tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
eranian@...gle.com, dave.hansen@...ux.intel.com, x86@...nel.org,
hpa@...or.com, corbet@....net, linux-kernel@...r.kernel.org,
linux-doc@...r.kernel.org
Subject: Re: [PATCH v2 10/10] Documentation/x86: Update resctrl_ui.rst for new
features
Hi Bagas,
On 8/2/22 22:50, Bagas Sanjaya wrote:
> On Mon, Aug 01, 2022 at 03:56:43PM -0500, Babu Moger wrote:
>> Update the documentation for the new features:
>> 1. Slow Memory Bandwidth allocation.
>> With this feature, the QOS enforcement policies can be applied
>> to the external slow memory connected to the host. QOS enforcement
>> is accomplished by assigning a Class Of Service (COS) to a processor
>> and specifying allocations or limits for that COS for each resource
>> to be allocated.
>>
>> 2. Bandwidth Monitoring Event Configuration (BMEC).
>> The bandwidth monitoring events mbm_total_bytes and mbm_local_bytes
>> are set to count all the total and local reads/writes respectively.
>> With the introduction of slow memory, the two counters are not
>> enough to count all the different types are memory events. With the
>> feature BMEC, the users have the option to configure mbm_total_bytes
>> and mbm_local_bytes to count the specific type of events.
>>
>> Added the instructions to configure with examples.
>>
> Say "Also add configuration instructions with examples" instead.
Sure.
>
>> Signed-off-by: Babu Moger <babu.moger@....com>
>> ---
>> Documentation/x86/resctrl.rst | 123 +++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 123 insertions(+)
>>
>> diff --git a/Documentation/x86/resctrl.rst b/Documentation/x86/resctrl.rst
>> index 71a531061e4e..ba6833171c0a 100644
>> --- a/Documentation/x86/resctrl.rst
>> +++ b/Documentation/x86/resctrl.rst
>> @@ -167,6 +167,12 @@ with the following files:
>> bytes) at which a previously used LLC_occupancy
>> counter can be considered for re-use.
>>
>> +"mon_configurable":
>> + Provides the information if the events mbm_total and
>> + mbm_local are configurable. See the configuration
>> + details for "mbm_total_config" and "mbm_local_config"
>> + for more information.
>> +
>> Finally, in the top level of the "info" directory there is a file
>> named "last_cmd_status". This is reset with every "command" issued
>> via the file system (making new directories or writing to any of the
>> @@ -264,6 +270,29 @@ 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.
>>
>> +"mbm_total_config":
>> +"mbm_local_config":
>> + This contains the current event configuration for the events
>> + mbm_total_bytes and mbm_local_bytes, respectively, when the
>> + Bandwidth Monitoring Event Configuration (BMEC) feature is supported.
>> + These files are organized by L3 domains under the subdirectories
>> + "mon_L3_00" and "mon_L3_01". When BMEC is supported, the events
>> + mbm_local_bytes and mbm_total_bytes are configurable.
>> +
>> + Following are the types of events supported.
>> + Bits Description
>> + 6 Dirty Victims from the QOS domain to all types of memory
>> + 5 Reads to slow memory in the non-local NUMA domain
>> + 4 Reads to slow memory in the local NUMA domain
>> + 3 Non-temporal writes to non-local NUMA domain
>> + 2 Non-temporal writes to local NUMA domain
>> + 1 Reads to memory in the non-local NUMA domain
>> + 0 Reads to memory in the local NUMA domain
>> +
> Why not use table?
I have not used the table in vim. But pulled your diff. Now it looks like
table.
Hope that works.
>
>> + By default, the mbm_total_bytes configuration is set to 0x7f to count
>> + all the event types and the mbm_local_bytes configuration is set to
>> + 0x15 to count all the local memory events.
>> +
>> Resource allocation rules
>> -------------------------
>>
>> @@ -464,6 +493,14 @@ Memory bandwidth domain is L3 cache.
>>
>> MB:<cache_id0>=bw_MBps0;<cache_id1>=bw_MBps1;...
>>
>> +Slow Memory bandwidth Allocation (when supported)
>> +------------------------------------------
>> +
>> +Slow Memory b/w domain is L3 cache.
>> +::
>> +
>> + SB:<cache_id0>=bandwidth0;<cache_id1>=bandwidth1;...
>> +
>> Reading/writing the schemata file
>> ---------------------------------
>> Reading the schemata file will show the state of all resources
>> @@ -479,6 +516,44 @@ which you wish to change. E.g.
>> L3DATA:0=fffff;1=fffff;2=3c0;3=fffff
>> L3CODE:0=fffff;1=fffff;2=fffff;3=fffff
>>
>> +Reading/writing the schemata file (on AMD systems)
>> +---------------------------------------------------------------
>> +Reading the schemata file will show the state of all resources
>> +on all domains. When writing the memory bandwidth allocation you
>> +only need to specify those values in an absolute number expressed
>> +in 1/8 GB/s increments. To allocate bandwidth limit of 2GB, you
>> +need to specify the value 16 (16 * 1/8 = 2). E.g.
>> +::
>> +
>> + # cat schemata
>> + MB:0=2048;1=2048;2=2048;3=2048
>> + L3:0=ffff;1=ffff;2=ffff;3=ffff
>> +
>> + # echo "MB:1=16" > schemata
>> + # cat schemata
>> + MB:0=2048;1= 16;2=2048;3=2048
>> + L3:0=ffff;1=ffff;2=ffff;3=ffff
>> +
>> +Reading/writing the schemata file (on AMD systems) with slow memory
>> +---------------------------------------------------------------
>> +Reading the schemata file will show the state of all resources
>> +on all domains. When writing the memory bandwidth allocation you
>> +only need to specify those values in an absolute number expressed
>> +in 1/8 GB/s increments. To allocate bandwidth limit of 8GB, you
>> +need to specify the value 64 (64 * 1/8 = 8). E.g.
>> +::
>> +
>> + # cat schemata
>> + SB:0=2048;1=2048;2=2048;3=2048
>> + MB:0=2048;1=2048;2=2048;3=2048
>> + L3:0=ffff;1=ffff;2=ffff;3=ffff
>> +
>> + # echo "SB:1=64" > schemata
>> + # cat schemata
>> + SB:0=2048;1= 64;2=2048;3=2048
>> + MB:0=2048;1=2048;2=2048;3=2048
>> + L3:0=ffff;1=ffff;2=ffff;3=ffff
>> +
>> Cache Pseudo-Locking
>> ====================
>> CAT enables a user to specify the amount of cache space that an
>> @@ -1210,6 +1285,54 @@ View the llc occupancy snapshot::
>> # cat /sys/fs/resctrl/p1/mon_data/mon_L3_00/llc_occupancy
>> 11234000
>>
>> +Example 5 (Configure and Monitor specific event types)
>> +-------------------------------------------------
>> +
>> +A single socket system which has real time tasks running on cores 0-4
>> +and non real time tasks on other CPUs. We want to monitor the memory
>> +bandwidth allocation for specific events.
>> +::
>> +
>> + # mount -t resctrl resctrl /sys/fs/resctrl
>> + # cd /sys/fs/resctrl
>> + # mkdir p1
>> +
>> +Move the CPUs 0-4 over to p1::
>> +
>> + # echo 0xf > p1/cpus
>> +
>> +View the current mbm_local_bytes::
>> +
>> + # cat /sys/fs/resctrl/p1/mon_data/mon_L3_00/mbm_local_bytes
>> + 112501
>> +
>> +Change the mbm_local_bytes to count mon-temporal writes to both local
>> +and non-local NUMA domain. Refer to event supported bitmap under
>> +mbm_local_config::
>> +
>> + # echo 0xc > /sys/fs/resctrl/p1/mon_data/mon_L3_00/mbm_local_config
>> +
>> +View the updated mbm_local_bytes::
>> +
>> + # cat /sys/fs/resctrl/p1/mon_data/mon_L3_00/mbm_local_bytes
>> + 12601
>> +
>> +Similar experiment on mbm_total_bytes. First view the current mbm_total_bytes::
>> +
>> + # cat /sys/fs/resctrl/p1/mon_data/mon_L3_00/mbm_total_bytes
>> + 1532501
>> +
>> +Change the mbm_total_bytes to count only reads to slow memory on both local
>> +and non-local NUMA domain. Refer to event supported bitmap under
>> +mbm_total_config::
>> +
>> + # echo 0x30 > /sys/fs/resctrl/p1/mon_data/mon_L3_00/mbm_total_config
>> +
>> +View the updated mbm_total_bytes::
>> +
>> + # cat /sys/fs/resctrl/p1/mon_data/mon_L3_00/mbm_total_bytes
>> + 104562
>> +
>> Intel RDT Errata
>> ================
>>
>>
>>
> When building this documentation, I get new warnings:
Is there a command I can use to build? That would be helpful next time.
>
> Documentation/x86/resctrl.rst:275: WARNING: Unexpected indentation.
> Documentation/x86/resctrl.rst:497: WARNING: Title underline too short.
>
> Slow Memory bandwidth Allocation (when supported)
> ------------------------------------------
> Documentation/x86/resctrl.rst:497: WARNING: Title underline too short.
>
> Slow Memory bandwidth Allocation (when supported)
> ------------------------------------------
> Documentation/x86/resctrl.rst:538: WARNING: Title underline too short.
>
> Reading/writing the schemata file (on AMD systems) with slow memory
> ---------------------------------------------------------------
> Documentation/x86/resctrl.rst:538: WARNING: Title underline too short.
>
> Reading/writing the schemata file (on AMD systems) with slow memory
> ---------------------------------------------------------------
> Documentation/x86/resctrl.rst:1289: WARNING: Title underline too short.
>
> Example 5 (Configure and Monitor specific event types)
> -------------------------------------------------
> Documentation/x86/resctrl.rst:1289: WARNING: Title underline too short.
>
> Example 5 (Configure and Monitor specific event types)
> -------------------------------------------------
>
> I have to apply the fixup:
>
> ---- >8 ----
>
> diff --git a/Documentation/x86/resctrl.rst b/Documentation/x86/resctrl.rst
> index ba6833171c0a39..886cb9bd7a181c 100644
> --- a/Documentation/x86/resctrl.rst
> +++ b/Documentation/x86/resctrl.rst
> @@ -270,8 +270,7 @@ 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.
>
> -"mbm_total_config":
> -"mbm_local_config":
> +"mbm_total_config", "mbm_local_config":
> This contains the current event configuration for the events
> mbm_total_bytes and mbm_local_bytes, respectively, when the
> Bandwidth Monitoring Event Configuration (BMEC) feature is supported.
> @@ -279,8 +278,11 @@ When monitoring is enabled all MON groups will also contain:
> "mon_L3_00" and "mon_L3_01". When BMEC is supported, the events
> mbm_local_bytes and mbm_total_bytes are configurable.
>
> - Following are the types of events supported.
> + Following are the types of events supported:
> +
> + ==== ========================================================
> Bits Description
> + ==== ========================================================
> 6 Dirty Victims from the QOS domain to all types of memory
> 5 Reads to slow memory in the non-local NUMA domain
> 4 Reads to slow memory in the local NUMA domain
> @@ -288,6 +290,7 @@ When monitoring is enabled all MON groups will also contain:
> 2 Non-temporal writes to local NUMA domain
> 1 Reads to memory in the non-local NUMA domain
> 0 Reads to memory in the local NUMA domain
> + ==== ========================================================
>
> By default, the mbm_total_bytes configuration is set to 0x7f to count
> all the event types and the mbm_local_bytes configuration is set to
> @@ -494,7 +497,7 @@ Memory bandwidth domain is L3 cache.
> MB:<cache_id0>=bw_MBps0;<cache_id1>=bw_MBps1;...
>
> Slow Memory bandwidth Allocation (when supported)
> -------------------------------------------
> +-------------------------------------------------
>
> Slow Memory b/w domain is L3 cache.
> ::
> @@ -517,7 +520,7 @@ which you wish to change. E.g.
> L3CODE:0=fffff;1=fffff;2=fffff;3=fffff
>
> Reading/writing the schemata file (on AMD systems)
> ----------------------------------------------------------------
> +--------------------------------------------------
> Reading the schemata file will show the state of all resources
> on all domains. When writing the memory bandwidth allocation you
> only need to specify those values in an absolute number expressed
> @@ -535,7 +538,7 @@ need to specify the value 16 (16 * 1/8 = 2). E.g.
> L3:0=ffff;1=ffff;2=ffff;3=ffff
>
> Reading/writing the schemata file (on AMD systems) with slow memory
> ----------------------------------------------------------------
> +-------------------------------------------------------------------
> Reading the schemata file will show the state of all resources
> on all domains. When writing the memory bandwidth allocation you
> only need to specify those values in an absolute number expressed
> @@ -1286,7 +1289,7 @@ View the llc occupancy snapshot::
> 11234000
>
> Example 5 (Configure and Monitor specific event types)
> --------------------------------------------------
> +------------------------------------------------------
>
> A single socket system which has real time tasks running on cores 0-4
> and non real time tasks on other CPUs. We want to monitor the memory
>
> Thanks.
>
I have pulled your diff now. Thank you
--
Thanks
Babu Moger
Powered by blists - more mailing lists