From: "Moger, Babu" <babu.moger@amd.com>
To: Reinette Chatre <reinette.chatre@intel.com>,
corbet@lwn.net, fenghua.yu@intel.com, tglx@linutronix.de,
mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com
Cc: x86@kernel.org, hpa@zytor.com, paulmck@kernel.org,
rdunlap@infradead.org, tj@kernel.org, peterz@infradead.org,
yanjiewtw@gmail.com, kim.phillips@amd.com,
lukas.bulwahn@gmail.com, seanjc@google.com, jmattson@google.com,
leitao@debian.org, jpoimboe@kernel.org,
rick.p.edgecombe@intel.com, kirill.shutemov@linux.intel.com,
jithu.joseph@intel.com, kai.huang@intel.com,
kan.liang@linux.intel.com, daniel.sneddon@linux.intel.com,
pbonzini@redhat.com, sandipan.das@amd.com,
ilpo.jarvinen@linux.intel.com, peternewman@google.com,
maciej.wieczor-retman@intel.com, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org, eranian@google.com,
james.morse@arm.com
Subject: Re: [PATCH v6 00/22] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC)
Date: Wed, 21 Aug 2024 20:31:40 -0500 [thread overview]
Message-ID: <3223bd31-2112-0c5e-08d4-7e4942d031ec@amd.com> (raw)
In-Reply-To: <d093c0bc-dfd2-422a-9d23-2bde68dc6f73@intel.com>
Hi Reinette,
On 8/16/24 16:28, Reinette Chatre wrote:
> Hi Babu,
>
> On 8/6/24 3:00 PM, Babu Moger wrote:
>>
>> Feature adds following interface files:
>>
>> /sys/fs/resctrl/info/L3_MON/mbm_mode: Reports the list of assignable
>> monitoring features supported. The enclosed brackets indicate which
>> feature is enabled.
>
> I've been considering this file as a generic file where all future "MBM
> modes"
> can be captured, while this series treats it as specific to "assignable
> monitoring
> features" (btw, should this be "assignable monitoring modes" to match the
> name?).
> Looking closer at this implementation it does make things easier that
> "mbm_mode" is
> specific to "assignable monitoring features" but when doing so I think it
> should have
> a less generic name to avoid the obstacles we have with the existing
> "mon_features".
> Apologies that this goes back to be close to what you had earlier ... maybe
> "mbm_assign_mode"?
Lets see:
#cat /sys/fs/resctrl/info/L3_MON/mbm_mode
[mbm_cntr_assign] <- This already says 'assign'. Isn't that enough?
default <- Default mode is not related assignable features.
I would think mbm_mode is fine. Let me know.
>>
>> /sys/fs/resctrl/info/L3_MON/num_mbm_cntrs: Reports the number of monitoring
>> counters available for assignment.
>>
>> /sys/fs/resctrl/info/L3_MON/mbm_control: Reports the resctrl group and
>> monitor
>> status of each group. Assignment state can be updated by writing to the
>> interface.
>>
>> # Examples
>>
>> a. Check if ABMC support is available
>> #mount -t resctrl resctrl /sys/fs/resctrl/
>>
>> #cat /sys/fs/resctrl/info/L3_MON/mbm_mode
>> [mbm_cntr_assign]
>> legacy
>>
>> ABMC feature is detected and it is enabled.
>>
>> b. Check how many ABMC counters are available.
>>
>> #cat /sys/fs/resctrl/info/L3_MON/num_mbm_cntrs
>> 32
>>
>> c. Create few resctrl groups.
>>
>> # mkdir /sys/fs/resctrl/mon_groups/child_default_mon_grp
>> # mkdir /sys/fs/resctrl/non_default_ctrl_mon_grp
>> # mkdir
>> /sys/fs/resctrl/non_default_ctrl_mon_grp/mon_groups/child_non_default_mon_grp
>>
>>
>> d. This series adds a new interface file
>> /sys/fs/resctrl/info/L3_MON/mbm_control
>> to list and modify the group's monitoring states. File provides
>> single place
>> to list monitoring states of all the resctrl groups. It makes it
>> easier for
>> user space to learn about the counters are used without needing to
>> traverse
>
> "to learn about the counters are used" -> "to learn the counters that are
> used" or
> "to learn about the used counters" or ...?
Sure.
>
>> all the groups thus reducing the number of file system calls.
>>
>> The list follows the following format:
>>
>> "<CTRL_MON group>/<MON group>/<domain_id>=<flags>"
>>
>> Format for specific type of groups:
>>
>> * Default CTRL_MON group:
>> "//<domain_id>=<flags>"
>>
>> * Non-default CTRL_MON group:
>> "<CTRL_MON group>//<domain_id>=<flags>"
>>
>> * Child MON group of default CTRL_MON group:
>> "/<MON group>/<domain_id>=<flags>"
>>
>> * Child MON group of non-default CTRL_MON group:
>> "<CTRL_MON group>/<MON group>/<domain_id>=<flags>"
>>
>> Flags can be one of the following:
>>
>> t MBM total event is enabled.
>> l MBM local event is enabled.
>> tl Both total and local MBM events are enabled.
>> _ None of the MBM events are enabled
>>
>> Examples:
>>
>> # cat /sys/fs/resctrl/info/L3_MON/mbm_control
>> non_default_ctrl_mon_grp//0=tl;1=tl;
>> non_default_ctrl_mon_grp/child_non_default_mon_grp/0=tl;1=tl;
>> //0=tl;1=tl;
>> /child_default_mon_grp/0=tl;1=tl;
>>
>> There are four groups and all the groups have local and total
>> event enabled on domain 0 and 1.
>>
>> e. Update the group assignment states using the interface file
>> /sys/fs/resctrl/info/L3_MON/mbm_control.
>>
>> The write format is similar to the above list format with addition
>> of opcode for the assignment operation.
>> “<CTRL_MON group>/<MON group>/<domain_id><opcode><flags>”
>>
>>
>> * Default CTRL_MON group:
>> "//<domain_id><opcode><flags>"
>>
>> * Non-default CTRL_MON group:
>> "<CTRL_MON group>//<domain_id><opcode><flags>"
>>
>> * Child MON group of default CTRL_MON group:
>> "/<MON group>/<domain_id><opcode><flags>"
>>
>> * Child MON group of non-default CTRL_MON group:
>> "<CTRL_MON group>/<MON group>/<domain_id><opcode><flags>"
>>
>> Opcode can be one of the following:
>>
>> = Update the assignment to match the flag.
>> + Assign a new event.
>> - Unassign a new event.
>
> Since user space can provide more than one flag the text could be more
> accurate
> noting this. Eg. "Update the assignment to match the flag" -> "Update the
> assignment
> to match the flags.".
Sure.
>
>>
>> Flags can be one of the following:
>>
>> t MBM total event.
>> l MBM local event.
>> tl Both total and local MBM events.
>> _ None of the MBM events. Only works with '=' opcode.
>
> Please take care with the implementation that seems to support a variety of
> combinations. If I understand correctly the implementation support flags
> like,
> for example, "tttt", "llll", "ltlt" ... those may not be an issue but of most
> concern is, for example, a pattern like "_lt" that (unexpectedly) appears to
> result in set of total and local.
Yes. Should we not allow flag combinations with "_"?
I am not very sure about how to go about this.
>
>>
>> Initial group status:
>> # cat /sys/fs/resctrl/info/L3_MON/mbm_control
>> non_default_ctrl_mon_grp//0=tl;1=tl;
>> non_default_ctrl_mon_grp/child_non_default_mon_grp/0=tl;1=tl;
>> //0=tl;1=tl;
>> /child_default_mon_grp/0=tl;1=tl;
>>
>> To update the default group to enable only total event on domain 0:
>> # echo "//0=t" > /sys/fs/resctrl/info/L3_MON/mbm_control
>>
>> Assignment status after the update:
>> # cat /sys/fs/resctrl/info/L3_MON/mbm_control
>> non_default_ctrl_mon_grp//0=tl;1=tl;
>> non_default_ctrl_mon_grp/child_non_default_mon_grp/0=tl;1=tl;
>> //0=t;1=tl;
>> /child_default_mon_grp/0=tl;1=tl;
>>
>> To update the MON group child_default_mon_grp to remove total event
>> on domain 1:
>> # echo "/child_default_mon_grp/1-t" >
>> /sys/fs/resctrl/info/L3_MON/mbm_control
>>
>> Assignment status after the update:
>> $ cat /sys/fs/resctrl/info/L3_MON/mbm_control
>> non_default_ctrl_mon_grp//0=tl;1=tl;
>> non_default_ctrl_mon_grp/child_non_default_mon_grp/0=tl;1=tl;
>> //0=t;1=tl;
>> /child_default_mon_grp/0=tl;1=l;
>>
>> To update the MON group
>> non_default_ctrl_mon_grp/child_non_default_mon_grp to
>> remove both local and total events on domain 1:
>> # echo "non_default_ctrl_mon_grp/child_non_default_mon_grp/1=_" >
>> /sys/fs/resctrl/info/L3_MON/mbm_control
>>
>> Assignment status after the update:
>> non_default_ctrl_mon_grp//0=tl;1=tl;
>> non_default_ctrl_mon_grp/child_non_default_mon_grp/0=tl;1=_;
>> //0=t;1=tl;
>> /child_default_mon_grp/0=tl;1=l;
>>
>> To update the default group to add a local event domain 0.
>> # echo "//0+l" > /sys/fs/resctrl/info/L3_MON/mbm_control
>>
>> Assignment status after the update:
>> # cat /sys/fs/resctrl/info/L3_MON/mbm_control
>> non_default_ctrl_mon_grp//0=tl;1=tl;
>> non_default_ctrl_mon_grp/child_non_default_mon_grp/0=tl;1=_;
>> //0=tl;1=tl;
>> /child_default_mon_grp/0=tl;1=l;
>>
>> To update the non default CTRL_MON group non_default_ctrl_mon_grp to
>> unassign all
>> the MBM events on all the domains.
>> # echo "non_default_ctrl_mon_grp//*=_" >
>> /sys/fs/resctrl/info/L3_MON/mbm_control
>>
>> Assignment status after the update:
>> # cat /sys/fs/resctrl/info/L3_MON/mbm_control
>> non_default_ctrl_mon_grp//0=_;1=_;
>> non_default_ctrl_mon_grp/child_non_default_mon_grp/0=tl;1=_;
>> //0=tl;1=tl;
>> /child_default_mon_grp/0=tl;1=l;
>>
>>
>> f. Read the event mbm_total_bytes and mbm_local_bytes of the default group.
>> There is no change in reading the events with ABMC. If the event is
>> unassigned
>> when reading, then the read will come back as "Unassigned".
>>
>> # cat /sys/fs/resctrl/mon_data/mon_L3_00/mbm_total_bytes
>> 779247936
>> # cat /sys/fs/resctrl/mon_data/mon_L3_00/mbm_local_bytes
>> 765207488
>>
>> g. Check the bandwidth configuration for the group. Note that bandwidth
>> configuration has a domain scope. Total event defaults to 0x7F (to
>> count all the events) and local event defaults to 0x15 (to count all
>> the local numa events). The event bitmap decoding is available at
>> https://www.kernel.org/doc/Documentation/x86/resctrl.rst
>> in section "mbm_total_bytes_config", "mbm_local_bytes_config":
>>
>> #cat /sys/fs/resctrl/info/L3_MON/mbm_total_bytes_config
>> 0=0x7f;1=0x7f
>>
>> #cat /sys/fs/resctrl/info/L3_MON/mbm_local_bytes_config
>> 0=0x15;1=0x15
>>
>> h. Change the bandwidth source for domain 0 for the total event to count
>> only reads.
>> Note that this change effects total events on the domain 0.
>>
>> #echo 0=0x33 > /sys/fs/resctrl/info/L3_MON/mbm_total_bytes_config
>> #cat /sys/fs/resctrl/info/L3_MON/mbm_total_bytes_config
>> 0=0x33;1=0x7F
>>
>> i. Now read the total event again. The first read will come back with
>> "Unavailable"
>> status. The subsequent read of mbm_total_bytes will display only the
>> read events.
>>
>> #cat /sys/fs/resctrl/mon_data/mon_L3_00/mbm_total_bytes
>> Unavailable
>> #cat /sys/fs/resctrl/mon_data/mon_L3_00/mbm_total_bytes
>> 314101
>>
>> j. Users will have the option to go back to legacy mbm_mode if required.
>> This can be done using the following command. Note that switching the
>> mbm_mode will reset all the mbm counters of all resctrl groups.
>
> "reset all the mbm counters" -> "reset all the MBM counters"
Sure.
>
>>
>> # echo "legacy" > /sys/fs/resctrl/info/L3_MON/mbm_mode
>> # cat /sys/fs/resctrl/info/L3_MON/mbm_mode
>> mbm_cntr_assign
>> [legacy]
>>
>>
>> k. Unmount the resctrl
>>
>> #umount /sys/fs/resctrl/
>> ---
>> v6:
>> We still need to finalize few interface details on mbm_mode and
>> mbm_control
>> in case of ABMC and Soft-ABMC. We can continue the discussion with
>> this series.
>
> Could you please list the details that need to be finalized?
1. mbm_mode display
# cat /sys/fs/resctrl/info/L3_MON/mbm_mode
mbm_cntr_assign
[legacy]
"mbm_cntr_assign"
Are we sticking with ""mbm_cntr_assign" for ABMC?
What should we name for soft-ABMC?
2. Also we had some concerns about Individual event assignment(ABMC)
and group assignment(soft-ABMC)?
Are the flags "t" and 'l' good for both these modes?
>
> Thank you
>
> Reinette
>
--
Thanks
Babu Moger
next prev parent reply other threads:[~2024-08-22 1:31 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-06 22:00 Babu Moger
2024-08-06 22:00 ` [PATCH v6 01/22] x86/cpufeatures: Add support for " Babu Moger
2024-08-07 16:32 ` Thomas Gleixner
2024-08-08 14:46 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 02/22] x86/resctrl: Add ABMC feature in the command line options Babu Moger
2024-08-06 22:00 ` [PATCH v6 03/22] x86/resctrl: Consolidate monitoring related data from rdt_resource Babu Moger
2024-08-16 21:29 ` Reinette Chatre
2024-08-19 14:46 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 04/22] x86/resctrl: Detect Assignable Bandwidth Monitoring feature details Babu Moger
2024-08-07 16:33 ` Thomas Gleixner
2024-08-16 21:30 ` Reinette Chatre
2024-08-19 15:37 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 05/22] x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags Babu Moger
2024-08-06 22:00 ` [PATCH v6 06/22] x86/resctrl: Add support to enable/disable AMD ABMC feature Babu Moger
2024-08-16 16:29 ` James Morse
2024-08-16 20:38 ` Moger, Babu
2024-08-16 21:31 ` Reinette Chatre
2024-08-19 18:07 ` Moger, Babu
2024-08-20 18:17 ` Reinette Chatre
2024-08-06 22:00 ` [PATCH v6 07/22] x86/resctrl: Introduce the interface to display monitor mode Babu Moger
2024-08-16 16:56 ` James Morse
2024-08-16 20:38 ` Moger, Babu
2024-08-16 21:32 ` Reinette Chatre
2024-08-19 19:27 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 08/22] x86/resctrl: Introduce interface to display number of monitoring counters Babu Moger
2024-08-16 21:34 ` Reinette Chatre
2024-08-20 15:56 ` Moger, Babu
2024-08-20 18:08 ` Reinette Chatre
2024-08-06 22:00 ` [PATCH v6 09/22] x86/resctrl: Introduce MBM counters bitmap Babu Moger
2024-08-16 16:29 ` James Morse
2024-08-16 20:39 ` Moger, Babu
2024-08-16 21:35 ` Reinette Chatre
2024-08-19 15:49 ` Moger, Babu
2024-08-20 18:08 ` Reinette Chatre
2024-08-06 22:00 ` [PATCH v6 10/22] x86/resctrl: Introduce mbm_total_cfg and mbm_local_cfg Babu Moger
2024-08-06 22:00 ` [PATCH v6 11/22] x86/resctrl: Remove MSR reading of event configuration value Babu Moger
2024-08-16 21:36 ` Reinette Chatre
2024-08-20 16:19 ` Moger, Babu
2024-08-20 18:09 ` Reinette Chatre
2024-08-06 22:00 ` [PATCH v6 12/22] x86/resctrl: Introduce mbm_cntr_map to track counters at domain Babu Moger
2024-08-16 21:37 ` Reinette Chatre
2024-08-20 18:24 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 13/22] x86/resctrl: Add data structures and definitions for ABMC assignment Babu Moger
2024-08-16 21:38 ` Reinette Chatre
2024-08-20 20:56 ` Moger, Babu
2024-08-20 21:09 ` Reinette Chatre
2024-08-06 22:00 ` [PATCH v6 14/22] x86/resctrl: Introduce cntr_id in mongroup for assignments Babu Moger
2024-08-16 21:38 ` Reinette Chatre
2024-08-20 22:42 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 15/22] x86/resctrl: Add the interface to assign a hardware counter Babu Moger
2024-08-16 16:30 ` James Morse
2024-08-16 20:39 ` Moger, Babu
2024-08-16 21:41 ` Reinette Chatre
2024-08-21 15:04 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 16/22] x86/resctrl: Add the interface to unassign a MBM counter Babu Moger
2024-08-16 21:41 ` Reinette Chatre
2024-08-21 16:01 ` Moger, Babu
2024-08-23 20:18 ` Reinette Chatre
2024-08-23 22:05 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 17/22] x86/resctrl: Assign/unassign counters by default when ABMC is enabled Babu Moger
2024-08-16 21:42 ` Reinette Chatre
2024-08-21 17:20 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 18/22] x86/resctrl: Report "Unassigned" for MBM events in ABMC mode Babu Moger
2024-08-16 21:42 ` Reinette Chatre
2024-08-21 17:30 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 19/22] x86/resctrl: Introduce the interface to switch between monitor modes Babu Moger
2024-08-16 16:31 ` James Morse
2024-08-16 17:01 ` Reinette Chatre
2024-08-16 17:16 ` Peter Newman
2024-08-16 18:09 ` Reinette Chatre
2024-08-19 14:52 ` Reinette Chatre
2024-08-19 18:27 ` Peter Newman
2024-08-20 18:11 ` Reinette Chatre
2024-08-16 21:42 ` Reinette Chatre
2024-08-21 18:08 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 20/22] x86/resctrl: Enable AMD ABMC feature by default when supported Babu Moger
2024-08-16 16:32 ` James Morse
2024-08-16 20:40 ` Moger, Babu
2024-08-16 22:33 ` Reinette Chatre
2024-08-19 18:18 ` Moger, Babu
2024-08-20 18:12 ` Reinette Chatre
2024-08-20 20:04 ` Moger, Babu
2024-08-20 20:18 ` Moger, Babu
2024-08-20 20:37 ` Reinette Chatre
2024-08-06 22:00 ` [PATCH v6 21/22] x86/resctrl: Introduce interface to list monitor states of all the groups Babu Moger
2024-08-16 16:28 ` James Morse
2024-08-16 20:40 ` Moger, Babu
2024-08-06 22:00 ` [PATCH v6 22/22] x86/resctrl: Introduce interface to modify assignment states of " Babu Moger
2024-08-16 22:33 ` Reinette Chatre
2024-08-21 20:11 ` Moger, Babu
2024-08-23 20:18 ` Reinette Chatre
2024-08-23 22:04 ` Moger, Babu
2024-08-16 21:28 ` [PATCH v6 00/22] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Reinette Chatre
2024-08-22 1:31 ` Moger, Babu [this message]
2024-08-23 20:29 ` Reinette Chatre
2024-08-23 22:14 ` Moger, Babu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3223bd31-2112-0c5e-08d4-7e4942d031ec@amd.com \
--to=babu.moger@amd.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=daniel.sneddon@linux.intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=eranian@google.com \
--cc=fenghua.yu@intel.com \
--cc=hpa@zytor.com \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=james.morse@arm.com \
--cc=jithu.joseph@intel.com \
--cc=jmattson@google.com \
--cc=jpoimboe@kernel.org \
--cc=kai.huang@intel.com \
--cc=kan.liang@linux.intel.com \
--cc=kim.phillips@amd.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=leitao@debian.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas.bulwahn@gmail.com \
--cc=maciej.wieczor-retman@intel.com \
--cc=mingo@redhat.com \
--cc=paulmck@kernel.org \
--cc=pbonzini@redhat.com \
--cc=peternewman@google.com \
--cc=peterz@infradead.org \
--cc=rdunlap@infradead.org \
--cc=reinette.chatre@intel.com \
--cc=rick.p.edgecombe@intel.com \
--cc=sandipan.das@amd.com \
--cc=seanjc@google.com \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--cc=x86@kernel.org \
--cc=yanjiewtw@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®