linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Reinette Chatre <reinette.chatre@intel.com>
To: <babu.moger@amd.com>, "Luck, Tony" <tony.luck@intel.com>
Cc: "corbet@lwn.net" <corbet@lwn.net>,
	"Yu, Fenghua" <fenghua.yu@intel.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"bp@alien8.de" <bp@alien8.de>,
	"dave.hansen@linux.intel.com" <dave.hansen@linux.intel.com>,
	"x86@kernel.org" <x86@kernel.org>,
	"hpa@zytor.com" <hpa@zytor.com>,
	"paulmck@kernel.org" <paulmck@kernel.org>,
	"rdunlap@infradead.org" <rdunlap@infradead.org>,
	"tj@kernel.org" <tj@kernel.org>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"yanjiewtw@gmail.com" <yanjiewtw@gmail.com>,
	"kim.phillips@amd.com" <kim.phillips@amd.com>,
	"lukas.bulwahn@gmail.com" <lukas.bulwahn@gmail.com>,
	"seanjc@google.com" <seanjc@google.com>,
	"jmattson@google.com" <jmattson@google.com>,
	"leitao@debian.org" <leitao@debian.org>,
	"jpoimboe@kernel.org" <jpoimboe@kernel.org>,
	"Edgecombe, Rick P" <rick.p.edgecombe@intel.com>,
	"kirill.shutemov@linux.intel.com"
	<kirill.shutemov@linux.intel.com>,
	"Joseph, Jithu" <jithu.joseph@intel.com>,
	"Huang, Kai" <kai.huang@intel.com>,
	"kan.liang@linux.intel.com" <kan.liang@linux.intel.com>,
	"daniel.sneddon@linux.intel.com" <daniel.sneddon@linux.intel.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"sandipan.das@amd.com" <sandipan.das@amd.com>,
	"ilpo.jarvinen@linux.intel.com" <ilpo.jarvinen@linux.intel.com>,
	"peternewman@google.com" <peternewman@google.com>,
	"Wieczor-Retman, Maciej" <maciej.wieczor-retman@intel.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Eranian, Stephane" <eranian@google.com>,
	"james.morse@arm.com" <james.morse@arm.com>
Subject: Re: [PATCH v8 19/25] x86/resctrl: Auto assign/unassign counters when mbm_cntr_assign is enabled
Date: Tue, 15 Oct 2024 10:18:15 -0700	[thread overview]
Message-ID: <8fa57edb-996c-4867-8a7e-05a8fcb9fe3a@intel.com> (raw)
In-Reply-To: <b4d9b572-4df3-4758-a40b-cb48fde0b595@amd.com>

Hi Babu,

On 10/15/24 8:43 AM, Moger, Babu wrote:
> Hi Reinette/Tony,
> 
> On 10/14/24 21:39,  wrote:
>> Hi Babu,
>>
>> On 10/14/24 9:35 AM, Moger, Babu wrote:
>>> On 12/31/69 18:00, Luck, Tony wrote:
>>  
>>>>
>>>> It is still the case that callers don't care about the return value.
>>>
>>> That is correct.
>>>
>>
>> Are you planning to change this? I think Tony has a good point that since
>> assignment failures do not matter it unnecessarily complicates the code to
>> have rdtgroup_assign_cntrs() return failure.
>>
>> I also think the internals of rdtgroup_assign_cntrs() deserve a closer look.
>> I assume that error handling within rdtgroup_assign_cntrs() was created with
>> ABMC in mind. When only considering ABMC then the only reason why
>> rdtgroup_assign_cntr_event() could fail is if the system ran out of counters
>> and then indeed it makes no sense to attempt another call to rdtgroup_assign_cntr_event().
>>
>> Now that the resctrl fs/arch split is clear the implementation does indeed expose
>> another opportunity for failure ... if the arch callback, resctrl_arch_config_cntr()
>> fails. It could thus be possible for the first rdtgroup_assign_cntr_event() to fail
>> while the second succeeds. Earlier [1], Tony suggested to, within rdtgroup_assign_cntrs(),
>> remove the local ret variable and have it return void. This sounds good to me.
>> When doing so a function comment explaining the usage will be helpful.
>>
>> I also think that rdtgroup_unassign_cntrs() deserves similar scrutiny. Even more
>> so since I do not think that the second rdtgroup_unassign_cntr_event()
>> should be prevented from running if the first rdtgroup_unassign_cntr_event() fails.
> 
> 
> Sounds fine with me. Now it will look like this below.

Thank you for considering.

> 
> 

I assume that you will keep rdtgroup_assign_cntrs() function comment? I think
it may need some small changes to go with the function now returning void ...
for example, saying "Each group *requires* two counters" and then not failing when
two counters cannot be allocated seems suspect.

For example (please feel free to improve):

	Called when a new group is created. If "mbm_cntr_assign" mode is enabled,   
	counters are automatically assigned. Each group can accommodate two counters:      
	one for the total event and one for the local event. Assignments may fail
	due to the limited number of counters. However, it is not necessary to
	fail the group creation and thus no failure is returned. Users have the
	option to modify the counter assignments after the group has been created.   

> static void rdtgroup_assign_cntrs(struct rdtgroup *rdtgrp)
> {
>   struct rdt_resource *r = &rdt_resources_all[RDT_RESOURCE_L3].r_resctrl;
> 
>  if (!resctrl_arch_mbm_cntr_assign_enabled(r))
>       return;
> 
>  if (is_mbm_total_enabled())
>    rdtgroup_assign_cntr_event(r, rdtgrp, NULL, QOS_L3_MBM_TOTAL_EVENT_ID);
> 
>  if (is_mbm_local_enabled())
>    rdtgroup_assign_cntr_event(r, rdtgrp, NULL, QOS_L3_MBM_LOCAL_EVENT_ID);
> 
> }
> 
> /*
>  * Called when a group is deleted. Counters are unassigned if it was in
>  * assigned state.
>  */
> static void rdtgroup_unassign_cntrs(struct rdtgroup *rdtgrp)
> {
>   struct rdt_resource *r = &rdt_resources_all[RDT_RESOURCE_L3].r_resctrl;
> 
>   if (!resctrl_arch_mbm_cntr_assign_enabled(r))
>        return;
> 
>  if (is_mbm_total_enabled())
>  rdtgroup_unassign_cntr_event(r, rdtgrp, NULL, QOS_L3_MBM_TOTAL_EVENT_ID);
> 
>  if (is_mbm_local_enabled())
>  rdtgroup_unassign_cntr_event(r, rdtgrp, NULL, QOS_L3_MBM_LOCAL_EVENT_ID);
> 
> }

Looks good to me, thank you.

Reinette


  parent reply	other threads:[~2024-10-15 17:18 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-09 17:39 [PATCH v8 00/25] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Babu Moger
2024-10-09 17:39 ` [PATCH v8 01/25] x86/cpufeatures: Add support for " Babu Moger
2024-10-09 17:39 ` [PATCH v8 02/25] x86/resctrl: Add ABMC feature in the command line options Babu Moger
2024-10-16  3:06   ` Reinette Chatre
2024-10-09 17:39 ` [PATCH v8 03/25] x86/resctrl: Consolidate monitoring related data from rdt_resource Babu Moger
2024-10-09 17:39 ` [PATCH v8 04/25] x86/resctrl: Detect Assignable Bandwidth Monitoring feature details Babu Moger
2024-10-16  3:06   ` Reinette Chatre
2024-10-09 17:39 ` [PATCH v8 05/25] x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags Babu Moger
2024-10-09 17:39 ` [PATCH v8 06/25] x86/resctrl: Add support to enable/disable AMD ABMC feature Babu Moger
2024-10-11 18:14   ` Tony Luck
2024-10-11 20:53     ` Moger, Babu
2024-10-16  3:07   ` Reinette Chatre
2024-10-09 17:39 ` [PATCH v8 07/25] x86/resctrl: Introduce the interface to display monitor mode Babu Moger
2024-10-09 22:42   ` Tony Luck
2024-10-10 14:54     ` Moger, Babu
2024-10-10 15:07       ` Luck, Tony
2024-10-10 15:30         ` Moger, Babu
2024-10-10 16:02           ` Luck, Tony
2024-10-11 22:24           ` Reinette Chatre
2024-10-14 15:16             ` Moger, Babu
2024-10-16  3:12   ` Reinette Chatre
2024-10-16 15:57     ` Moger, Babu
2024-10-16 16:25       ` Reinette Chatre
2024-10-09 17:39 ` [PATCH v8 08/25] x86/resctrl: Introduce interface to display number of monitoring counters Babu Moger
2024-10-09 22:49   ` Tony Luck
2024-10-10 15:12     ` Moger, Babu
2024-10-10 15:58       ` Luck, Tony
2024-10-10 16:57         ` Moger, Babu
2024-10-10 17:08           ` Luck, Tony
2024-10-10 18:36             ` Moger, Babu
2024-10-10 18:57               ` Luck, Tony
2024-10-10 20:32                 ` Moger, Babu
2024-10-11 17:44                   ` Tony Luck
2024-10-11 20:49                     ` Moger, Babu
2024-10-11 21:36                       ` Tony Luck
2024-10-14 16:46                         ` Reinette Chatre
2024-10-14 17:20                           ` Moger, Babu
2024-10-14 17:49                             ` Luck, Tony
2024-10-14 19:21                               ` Moger, Babu
2024-10-14 19:51                                 ` Luck, Tony
2024-10-14 20:05                                   ` Reinette Chatre
2024-10-14 20:32                                     ` Moger, Babu
2024-10-24 17:29                                     ` Moger, Babu
2024-10-24 17:37                                       ` Luck, Tony
2024-10-25 20:31                                         ` Moger, Babu
2024-10-14 16:59               ` Reinette Chatre
2024-10-14 19:23                 ` Moger, Babu
2024-10-14 16:25       ` Reinette Chatre
2024-10-14 17:46         ` Moger, Babu
2024-10-14 18:30           ` Reinette Chatre
2024-10-14 18:51             ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 09/25] x86/resctrl: Add __init attribute to dom_data_init() Babu Moger
2024-10-16  3:13   ` Reinette Chatre
2024-10-16 17:32     ` Moger, Babu
2024-10-16 18:55       ` Reinette Chatre
2024-10-16 20:18         ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 10/25] x86/resctrl: Introduce bitmap mbm_cntr_free_map to track assignable counters Babu Moger
2024-10-16  3:14   ` Reinette Chatre
2024-10-17 16:55     ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 11/25] x86/resctrl: Introduce mbm_total_cfg and mbm_local_cfg in struct rdt_hw_mon_domain Babu Moger
2024-10-16  3:15   ` Reinette Chatre
2024-10-09 17:39 ` [PATCH v8 12/25] x86/resctrl: Remove MSR reading of event configuration value Babu Moger
2024-10-16  3:16   ` Reinette Chatre
2024-10-17 17:59     ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 13/25] x86/resctrl: Introduce mbm_cntr_map to track assignable counters at domain Babu Moger
2024-10-16  3:19   ` Reinette Chatre
2024-10-09 17:39 ` [PATCH v8 14/25] x86/resctrl: Add data structures and definitions for ABMC assignment Babu Moger
2024-10-16  3:21   ` Reinette Chatre
2024-10-17 18:52     ` Moger, Babu
2024-10-17 21:13       ` Reinette Chatre
2024-10-17 23:02         ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 15/25] x86/resctrl: Introduce cntr_id in mongroup for assignments Babu Moger
2024-10-16  3:22   ` Reinette Chatre
2024-10-17 19:19     ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 16/25] x86/resctrl: Implement resctrl_arch_config_cntr() to assign a counter with ABMC Babu Moger
2024-10-16  3:23   ` Reinette Chatre
2024-10-17 22:44     ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 17/25] x86/resctrl: Add the interface to assign/update counter assignment Babu Moger
2024-10-16  3:25   ` Reinette Chatre
2024-10-17 22:56     ` Moger, Babu
2024-10-18 15:59       ` Reinette Chatre
2024-10-21 14:40         ` Moger, Babu
2024-10-21 15:31           ` Reinette Chatre
2024-10-22  1:15             ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 18/25] x86/resctrl: Add the interface to unassign a MBM counter Babu Moger
2024-10-16  3:29   ` Reinette Chatre
2024-10-17 23:11     ` Moger, Babu
2024-10-18 16:06       ` Reinette Chatre
2024-10-09 17:39 ` [PATCH v8 19/25] x86/resctrl: Auto assign/unassign counters when mbm_cntr_assign is enabled Babu Moger
2024-10-11 17:17   ` Tony Luck
2024-10-11 21:17     ` Moger, Babu
2024-10-11 21:33       ` Luck, Tony
2024-10-14 15:43         ` Moger, Babu
2024-10-14 16:18           ` Luck, Tony
2024-10-14 16:35             ` Moger, Babu
2024-10-15  2:39               ` Reinette Chatre
2024-10-15 15:43                 ` Moger, Babu
2024-10-15 16:57                   ` Luck, Tony
2024-10-15 17:18                   ` Reinette Chatre [this message]
2024-10-15 20:42                     ` Moger, Babu
2024-10-16  3:30   ` Reinette Chatre
2024-10-18 14:22     ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 20/25] x86/resctrl: Report "Unassigned" for MBM events in mbm_cntr_assign mode Babu Moger
2024-10-11 17:23   ` Tony Luck
2024-10-11 21:21     ` Moger, Babu
2024-10-16  3:31   ` Reinette Chatre
2024-10-18 14:31     ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 21/25] x86/resctrl: Introduce the interface to switch between monitor modes Babu Moger
2024-10-16  3:36   ` Reinette Chatre
2024-10-18 15:13     ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 22/25] x86/resctrl: Configure mbm_cntr_assign mode if supported Babu Moger
2024-10-09 17:39 ` [PATCH v8 23/25] x86/resctrl: Update assignments on event configuration changes Babu Moger
2024-10-16  3:40   ` Reinette Chatre
2024-10-18 15:50     ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 24/25] x86/resctrl: Introduce interface to list assignment states of all the groups Babu Moger
2024-10-16  3:40   ` Reinette Chatre
2024-10-21 14:56     ` Moger, Babu
2024-10-09 17:39 ` [PATCH v8 25/25] x86/resctrl: Introduce interface to modify assignment states of " Babu Moger
2024-10-16  3:43   ` Reinette Chatre
2024-10-21 17:04     ` Moger, Babu
2024-10-21 17:20       ` Reinette Chatre
2024-10-22  1:12         ` Moger, Babu
2024-10-16  3:05 ` [PATCH v8 00/25] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Reinette Chatre
2024-10-21 17:09   ` 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=8fa57edb-996c-4867-8a7e-05a8fcb9fe3a@intel.com \
    --to=reinette.chatre@intel.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=rick.p.edgecombe@intel.com \
    --cc=sandipan.das@amd.com \
    --cc=seanjc@google.com \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    --cc=tony.luck@intel.com \
    --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;
as well as URLs for NNTP newsgroup(s).