From: "Moger, Babu" <bmoger@amd.com>
To: Reinette Chatre <reinette.chatre@intel.com>,
babu.moger@amd.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 v7 24/24] x86/resctrl: Introduce interface to modify assignment states of the groups
Date: Fri, 4 Oct 2024 19:23:54 -0500 [thread overview]
Message-ID: <65ad7f42-c3a0-c587-c1c0-d76dda3bc455@amd.com> (raw)
In-Reply-To: <fd138377-3a69-4749-b32c-f7bc3783a611@intel.com>
Hi Reinette,
On 10/4/2024 4:09 PM, Reinette Chatre wrote:
> Hi Babu,
>
> On 10/4/24 12:36 PM, Moger, Babu wrote:
>> On 10/4/2024 11:52 AM, Reinette Chatre wrote:
>>> On 10/4/24 9:38 AM, Moger, Babu wrote:
>>>> On 10/3/2024 9:17 PM, Reinette Chatre wrote:
>>>>> On 10/3/24 6:11 PM, Moger, Babu wrote:
>>>>>> On 10/2/2024 1:19 PM, Reinette Chatre wrote:
>>>>>>> On 9/27/24 10:47 AM, Moger, Babu wrote:
>>>>>>>> On 9/19/2024 12:59 PM, Reinette Chatre wrote:
>>>>>>>>> On 9/4/24 3:21 PM, Babu Moger wrote:
>>>>>>>
>>>>>>>>>> v7: Simplified the parsing (strsep(&token, "//") in rdtgroup_mbm_assign_control_write().
>>>>>>>>>> Added mutex lock in rdtgroup_mbm_assign_control_write() while processing.
>>>>>>>>>> Renamed rdtgroup_find_grp to rdtgroup_find_grp_by_name.
>>>>>>>>>> Fixed rdtgroup_str_to_mon_state to return error for invalid flags.
>>>>>>>>>> Simplified the calls rdtgroup_assign_cntr by merging few functions earlier.
>>>>>>>>>> Removed ABMC reference in FS code.
>>>>>>>>>> Reinette commented about handling the combination of flags like 'lt_' and '_lt'.
>>>>>>>>>> Not sure if we need to change the behaviour here. Processed them sequencially right now.
>>>>>>>>>> Users have the liberty to pass the flags. Restricting it might be a problem later.
>>>>>>>>>
>>>>>>>>> Could you please give an example of what problem may be encountered later? An assignment
>>>>>>>>> like "domain=_lt" seems like a contradiction to me since user space essentially asks
>>>>>>>>> for "None of the MBM events" as well as "MBM total event" and "MBM local event".
>>>>>>>>
>>>>>>>> I agree it is contradiction. But user is the one who decides to do that. I think we should allow it. Also, there is some value to it as well.
>>>>>>>>
>>>>>>>> "domain=_lt" This will also reset the counters if the total and local events are assigned earlier this action.
>>>>>>>
>>>>>>> The last sentence is not clear to me. Could you please elaborate what
>>>>>>> you mean with "are assigned earlier this action"?
>>>>>>>
>>>>>>
>>>>>> I think I confused you here. "domain=_lt" is equivalent to "domain=lt". My reasoning is handling all the combination in the code adds code complexity and leave it the user what he wants to do.
>>>>>
>>>>> hmmm ... and how about "domain=lt_"? Do you think this should also be equivalent to
>>>>> "domain=lt" or perhaps an expectation that counters should be assigned to the two events
>>>>> and then immediately unassigned?
>>>>
>>>> Yes. "domain=lt_" should be "domain=lt".
>>>>
>>>>>
>>>>> Giving user such flexibility may be interpreted as the assignment seen as acting
>>>>> sequentially through the flags provided. Ideally the interface should behave in
>>>>> a predictable way if the goal is to provide flexibility to the user.
>>>>>
>>>>
>>>> My only concern is adding the check now and reverting it back later.
>>>> Basically process the flags sequentially and don't differentiate between the flags. I feel it fits the predictable behavior. No?
>>>
>>> This is the point I was trying to make. If flags are processed sequentially then it would be
>>> predictable behavior and if that is documented expectation then that should be ok. The problem
>>> that I want to highlight is that if predictable sequential processing is the goal then
>>> "domain=_lt" cannot be interpreted the same as "domain="lt_". When flags in "domain=lt_"
>>> are processed sequentially then final state should be "domain=_", no?
>>
>> Yes. that is correct.
>>>
>>> If sequential processing is done then "domain=_lt" means "unassign all counters followed
>>> by assign of counter to local MBM monitoring, followed by assign of counter to total MBM
>>> monitoring". Similarly, "domain=lt_" means "assign a counter to local MBM monitoring, then
>>> assign a counter to total MBM monitoring, then unassign all counters".
>>
>> Yes. That is correct.
>>>
>>> If this sequential processing is the goal then the implementation would still need to be
>>> adapted. Consider, for example, "domain=lt" ... with sequential processing the user
>>> indicates/expects that "local MBM monitoring" has priority if there is only one counter
>>> available, but the current implementation does not process it sequentially and would end up
>>> assigning counter to "total MBM monitoring" first.
>>
>> Sure. Lets accommodate the sequential processing. Process the flags
>> in the order it is provided. I need to make few changes to
>> rdtgroup_process_flags() to address it. Hopefully, it can be done
>> without much complexity. Thanks
>
> I doubt that the implementation would be complex but it may take some effort for it
> to be efficient ... taking actions that involve changing kernel and HW state for each
> flag as it is encountered vs. parsing all flags and changing kernel and HW state once.
>
> The risk is that a simple request like "domain=lt" may take twice as long when
> doing sequential processing. When users provide flags like "domain=_lt" to take advantage
> of sequential processing then there may be an argument like "user gets what is being asked
> for" when things are slower, but I am not sure the same can be true for a user
> that just wants to run "domain=lt".
>
> To me it seems simpler to require that "_" always appears by itself and that
Ok. Lets go with this approach treating "_" as a special and cannot be
combined with other flags. Seems simple to implement.
> any flags set by the user using "=" are combined during parsing so that they can be
> acted on in a single flow. If indeed users want to do something sequentially
> like "unassign all flags and then assign local MBM" then instead of "domain=_l"
> I think "domain=_;domain=l" could be used?
Yes. It can be done.
thanks
Babu Moger
next prev parent reply other threads:[~2024-10-05 0:24 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-04 22:21 [PATCH v7 00/24] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Babu Moger
2024-09-04 22:21 ` [PATCH v7 01/24] x86/cpufeatures: Add support for " Babu Moger
2024-09-04 22:21 ` [PATCH v7 02/24] x86/resctrl: Add ABMC feature in the command line options Babu Moger
2024-09-19 16:00 ` Reinette Chatre
2024-09-23 14:21 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 03/24] x86/resctrl: Consolidate monitoring related data from rdt_resource Babu Moger
2024-09-19 16:03 ` Reinette Chatre
2024-09-04 22:21 ` [PATCH v7 04/24] x86/resctrl: Detect Assignable Bandwidth Monitoring feature details Babu Moger
2024-09-19 16:16 ` Reinette Chatre
2024-09-23 14:37 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 05/24] x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags Babu Moger
2024-09-04 22:21 ` [PATCH v7 06/24] x86/resctrl: Add support to enable/disable AMD ABMC feature Babu Moger
2024-09-19 16:22 ` Reinette Chatre
2024-09-23 15:30 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 07/24] x86/resctrl: Introduce the interface to display monitor mode Babu Moger
2024-09-19 16:28 ` Reinette Chatre
2024-09-23 16:01 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 08/24] x86/resctrl: Introduce interface to display number of monitoring counters Babu Moger
2024-09-19 16:32 ` Reinette Chatre
2024-09-23 16:23 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 09/24] x86/resctrl: Introduce bitmap mbm_cntr_free_map to track assignable counters Babu Moger
2024-09-19 16:42 ` Reinette Chatre
2024-09-23 18:33 ` Moger, Babu
2024-09-23 22:28 ` Reinette Chatre
2024-09-24 13:58 ` Moger, Babu
2024-09-24 16:25 ` Peter Newman
2024-09-24 17:01 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 10/24] x86/resctrl: Introduce mbm_total_cfg and mbm_local_cfg in struct rdt_hw_mon_domain Babu Moger
2024-09-19 16:51 ` Reinette Chatre
2024-09-23 18:43 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 11/24] x86/resctrl: Remove MSR reading of event configuration value Babu Moger
2024-09-19 16:55 ` Reinette Chatre
2024-09-23 18:45 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 12/24] x86/resctrl: Introduce mbm_cntr_map to track counters at domain Babu Moger
2024-09-04 22:21 ` [PATCH v7 13/24] x86/resctrl: Add data structures and definitions for ABMC assignment Babu Moger
2024-09-19 17:08 ` Reinette Chatre
2024-09-23 20:21 ` Moger, Babu
2024-09-23 22:30 ` Reinette Chatre
2024-09-24 14:51 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 14/24] x86/resctrl: Introduce cntr_id in mongroup for assignments Babu Moger
2024-09-04 22:21 ` [PATCH v7 15/24] x86/resctrl: Implement resctrl_arch_assign_cntr to assign a counter with ABMC Babu Moger
2024-09-19 17:13 ` Reinette Chatre
2024-09-23 21:03 ` Moger, Babu
2024-09-23 22:29 ` Reinette Chatre
2024-09-24 14:07 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 16/24] x86/resctrl: Add the interface to assign/update counter assignment Babu Moger
2024-09-19 17:20 ` Reinette Chatre
2024-09-26 16:28 ` Moger, Babu
2024-09-26 16:46 ` Reinette Chatre
2024-09-26 16:59 ` Moger, Babu
2024-09-27 1:48 ` Reinette Chatre
2024-09-04 22:21 ` [PATCH v7 17/24] x86/resctrl: Add the interface to unassign a MBM counter Babu Moger
2024-09-19 17:26 ` Reinette Chatre
2024-09-26 16:56 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 18/24] x86/resctrl: Auto Assign/unassign counters when mbm_cntr_assign is enabled Babu Moger
2024-09-19 17:29 ` Reinette Chatre
2024-09-26 18:48 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 19/24] x86/resctrl: Report "Unassigned" for MBM events in mbm_cntr_assign mode Babu Moger
2024-09-19 17:31 ` Reinette Chatre
2024-09-26 19:16 ` Moger, Babu
2024-09-27 1:50 ` Reinette Chatre
2024-09-27 13:40 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 20/24] x86/resctrl: Introduce the interface to switch between monitor modes Babu Moger
2024-09-19 17:38 ` Reinette Chatre
2024-09-26 19:39 ` Moger, Babu
2024-09-27 1:51 ` Reinette Chatre
2024-09-27 13:26 ` Moger, Babu
2024-09-27 15:07 ` Reinette Chatre
2024-09-04 22:21 ` [PATCH v7 21/24] x86/resctrl: Configure mbm_cntr_assign mode if supported Babu Moger
2024-09-19 17:43 ` Reinette Chatre
2024-09-27 14:37 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 22/24] x86/resctrl: Update assignments on event configuration changes Babu Moger
2024-09-19 17:45 ` Reinette Chatre
2024-09-27 16:22 ` Moger, Babu
2024-10-02 18:20 ` Reinette Chatre
2024-10-04 0:51 ` Moger, Babu
2024-10-04 2:17 ` Reinette Chatre
2024-10-04 15:02 ` Moger, Babu
2024-10-04 15:53 ` Reinette Chatre
2024-10-08 0:01 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 23/24] x86/resctrl: Introduce interface to list assignment states of all the groups Babu Moger
2024-09-19 17:53 ` Reinette Chatre
2024-09-27 17:06 ` Moger, Babu
2024-09-04 22:21 ` [PATCH v7 24/24] x86/resctrl: Introduce interface to modify assignment states of " Babu Moger
2024-09-19 17:59 ` Reinette Chatre
2024-09-27 17:47 ` Moger, Babu
2024-10-02 18:19 ` Reinette Chatre
2024-10-04 1:11 ` Moger, Babu
2024-10-04 2:17 ` Reinette Chatre
2024-10-04 16:38 ` Moger, Babu
2024-10-04 16:52 ` Reinette Chatre
2024-10-04 19:36 ` Moger, Babu
2024-10-04 21:09 ` Reinette Chatre
2024-10-05 0:23 ` Moger, Babu [this message]
2024-09-19 18:00 ` [PATCH v7 00/24] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Reinette Chatre
2024-09-27 18:11 ` 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=65ad7f42-c3a0-c587-c1c0-d76dda3bc455@amd.com \
--to=bmoger@amd.com \
--cc=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®