All of lore.kernel.org
 help / color / mirror / Atom feed
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: [RFC PATCH v3 10/17] x86/resctrl: Add data structures for ABMC assignment
Date: Tue, 7 May 2024 15:40:52 -0500	[thread overview]
Message-ID: <b367a6ba-3ff1-4173-bf71-cd7a04bf9882@amd.com> (raw)
In-Reply-To: <3149b62a-b9a4-49c6-a757-5a0e36df62df@intel.com>

Hi Reinette,


On 5/3/24 18:32, Reinette Chatre wrote:
> Hi Babu,
> 
> On 3/28/2024 6:06 PM, Babu Moger wrote:
>> ABMC (Bandwidth Monitoring Event Configuration) counters can be configured
>> by writing to L3_QOS_ABMC_CFG MSR. When ABMC is enabled, the user can
>> configure a counter by writing to L3_QOS_ABMC_CFG setting the CfgEn field
>> while specifying the Bandwidth Source, Bandwidth Types, and Counter
>> Identifier. Add the MSR definition and individual field definitions.
>>
>> MSR L3_QOS_ABMC_CFG (C000_03FDh) definitions.
>>
>> ==========================================================================
>> Bits 	Mnemonic	Description		Access Type   Reset Value
>> ==========================================================================
>> 63 	CfgEn 		Configuration Enable 	R/W 		0
>>
>> 62 	CtrEn 		Counter Enable 		R/W 		0
>>
>> 61:53 	– 		Reserved 		MBZ 		0
>>
>> 52:48 	CtrID 		Counter Identifier	R/W		0
>>
>> 47 	IsCOS		BwSrc field is a COS	R/W		0
>> 			(not an RMID)
>>
>> 46:44 	–		Reserved		MBZ		0
>>
>> 43:32	BwSrc		Bandwidth Source	R/W		0
>> 			(RMID or COS)
>>
>> 31:0	BwType		Bandwidth types to	R/W		0
>> 			track for this counter
>> ==========================================================================
>>
>> The feature details are documentd in the APM listed below [1].
>> [1] AMD64 Architecture Programmer's Manual Volume 2: System Programming
>> Publication # 24593 Revision 3.41 section 19.3.3.3 Assignable Bandwidth
>> Monitoring (ABMC).
> 
> This changelog is purely a summary of the hardware architecture. I have not come
> across a clear explanation on how this architecture is intended to be supported
> by resctrl. When would resctrl need/want to set particular fields? What is
> the mapping to resctrl?

Something like this in the changelog?

ABMC feature provides an option to assign(or pin) an RMID to the
hardware counter and monitor the bandwidth for a longer duration.

Hardware counters can be configured by writing to L3_QOS_ABMC_CFG MSR.
Configuration is done by setting the CfgEn field while specifying the
Bandwidth Source(RMID or CLOS), Bandwidth Types, and Counter Identifier.

Add the configuration register definition.

> 
>>
>> Signed-off-by: Babu Moger <babu.moger@amd.com>
>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537
>>
>> ---
>> v3: No changes.
>> v2: No changes.
>> ---
>>  arch/x86/include/asm/msr-index.h       |  1 +
>>  arch/x86/kernel/cpu/resctrl/internal.h | 23 +++++++++++++++++++++++
>>  2 files changed, 24 insertions(+)
>>
>> diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
>> index f16ee50b1a23..ab01abfab089 100644
>> --- a/arch/x86/include/asm/msr-index.h
>> +++ b/arch/x86/include/asm/msr-index.h
>> @@ -1166,6 +1166,7 @@
>>  #define MSR_IA32_SMBA_BW_BASE		0xc0000280
>>  #define MSR_IA32_EVT_CFG_BASE		0xc0000400
>>  #define MSR_IA32_L3_QOS_EXT_CFG		0xc00003ff
>> +#define MSR_IA32_L3_QOS_ABMC_CFG	0xc00003fd
>>  
>>  /* MSR_IA32_VMX_MISC bits */
>>  #define MSR_IA32_VMX_MISC_INTEL_PT                 (1ULL << 14)
>> diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
>> index b559b3a4555e..41b06d46ea74 100644
>> --- a/arch/x86/kernel/cpu/resctrl/internal.h
>> +++ b/arch/x86/kernel/cpu/resctrl/internal.h
>> @@ -106,6 +106,9 @@ cpumask_any_housekeeping(const struct cpumask *mask, int exclude_cpu)
>>  #define ASSIGN_TOTAL			BIT(0)
>>  #define ASSIGN_LOCAL			BIT(1)
>>  
>> +/* Maximum assignable counters per resctrl group */
>> +#define MAX_ASSIGN_CNTRS		2
>> +
>>  struct rdt_fs_context {
>>  	struct kernfs_fs_context	kfc;
>>  	bool				enable_cdpl2;
>> @@ -210,6 +213,7 @@ enum rdtgrp_mode {
>>   * @crdtgrp_list:		child rdtgroup node list
>>   * @rmid:			rmid for this rdtgroup
>>   * @mon_state:			Assignment state of the group
>> + * @abmc_ctr_id:		ABMC counterids assigned to this group
>>   */
>>  struct mongroup {
>>  	struct kernfs_node	*mon_data_kn;
>> @@ -217,6 +221,7 @@ struct mongroup {
>>  	struct list_head	crdtgrp_list;
>>  	u32			rmid;
>>  	u32			mon_state;
>> +	u32			abmc_ctr_id[MAX_ASSIGN_CNTRS];
>>  };
>>  
>>  /**
>> @@ -566,6 +571,24 @@ union cpuid_0x10_x_edx {
>>  	unsigned int full;
>>  };
>>  
>> +/*
>> + * L3_QOS_ABMC_CFG MSR details. ABMC counters can be configured
>> + * by writing to L3_QOS_ABMC_CFG.
> 
> There are many fields in this structure ... how is resctrl expected
> to set these fields in order to configure a counter? Please expand the
> comments.

Sure.

> 
>> + */
>> +union l3_qos_abmc_cfg {
>> +	struct {
>> +		unsigned long  bw_type	:32,
>> +			       bw_src	:12,
>> +			       rsvrd1	: 3,
> 
> Considering how "reserved" is spelled it is
> unexpected to see "rsvrd"

Will change it to "reserved1" and "reserved" (below).

> 
> 
>> +			       is_cos	: 1,
>> +			       ctr_id	: 5,
>> +			       rsvrd	: 9,
>> +			       ctr_en	: 1,
>> +			       cfg_en	: 1;
>> +	} split;
>> +	unsigned long full;
>> +};
>> +
>>  void rdt_last_cmd_clear(void);
>>  void rdt_last_cmd_puts(const char *s);
>>  __printf(1, 2)
> 
> 
> Reinette
> 

-- 
Thanks
Babu Moger

  reply	other threads:[~2024-05-07 20:41 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-29  1:06 [RFC PATCH v3 00/17] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Babu Moger
2024-03-29  1:06 ` [RFC PATCH v3 01/17] x86/resctrl: Add support for " Babu Moger
2024-05-03 23:25   ` Reinette Chatre
2024-05-06 17:57     ` Moger, Babu
2024-03-29  1:06 ` [RFC PATCH v3 02/17] x86/resctrl: Add ABMC feature in the command line options Babu Moger
2024-03-29  1:06 ` [RFC PATCH v3 03/17] x86/resctrl: Detect Assignable Bandwidth Monitoring feature details Babu Moger
2024-05-03 23:26   ` Reinette Chatre
2024-05-06 19:09     ` Moger, Babu
2024-05-07 20:27       ` Reinette Chatre
2024-05-09 22:34         ` Moger, Babu
2024-05-10  3:18           ` Reinette Chatre
2024-05-10 17:01             ` Moger, Babu
2024-05-10 18:34               ` Reinette Chatre
2024-05-11  1:40                 ` Moger, Babu
2024-03-29  1:06 ` [RFC PATCH v3 04/17] x86/resctrl: Introduce resctrl_file_fflags_init Babu Moger
2024-05-03 23:26   ` Reinette Chatre
2024-05-06 20:23     ` Moger, Babu
2024-05-07 20:27       ` Reinette Chatre
2024-05-10  0:23         ` Moger, Babu
2024-03-29  1:06 ` [RFC PATCH v3 05/17] x86/resctrl: Introduce the interface to display the assignment state Babu Moger
2024-05-03 23:28   ` Reinette Chatre
2024-05-07 16:28     ` Moger, Babu
2024-05-07 20:32       ` Reinette Chatre
2024-03-29  1:06 ` [RFC PATCH v3 06/17] x86/resctrl: Introduce interface to display number of ABMC counters Babu Moger
2024-03-29  1:06 ` [RFC PATCH v3 07/17] x86/resctrl: Add support to enable/disable ABMC feature Babu Moger
2024-04-04  0:30   ` Peter Newman
2024-04-04 15:16     ` Moger, Babu
2024-04-04 17:36       ` Peter Newman
2024-04-04 18:35         ` Moger, Babu
2024-04-04 18:43     ` Reinette Chatre
2024-04-04 19:01       ` Peter Newman
2024-05-16 20:03     ` Moger, Babu
2024-05-03 23:30   ` Reinette Chatre
2024-05-07 19:12     ` Moger, Babu
2024-05-07 20:32       ` Reinette Chatre
2024-05-09 21:45         ` Moger, Babu
2024-03-29  1:06 ` [RFC PATCH v3 08/17] x86/resctrl: Initialize assignable counters bitmap Babu Moger
2024-05-03 23:31   ` Reinette Chatre
2024-05-07 20:03     ` Moger, Babu
2024-03-29  1:06 ` [RFC PATCH v3 09/17] x86/resctrl: Introduce assign state for the mon group Babu Moger
2024-04-16 18:52   ` Peter Newman
2024-04-16 19:52     ` Moger, Babu
2024-03-29  1:06 ` [RFC PATCH v3 10/17] x86/resctrl: Add data structures for ABMC assignment Babu Moger
2024-05-03 23:32   ` Reinette Chatre
2024-05-07 20:40     ` Moger, Babu [this message]
2024-05-07 23:06       ` Reinette Chatre
2024-05-10  0:28         ` Moger, Babu
2024-03-29  1:06 ` [RFC PATCH v3 11/17] x86/resctrl: Introduce mbm_total_cfg and mbm_local_cfg Babu Moger
2024-05-03 23:33   ` Reinette Chatre
2024-05-08 15:57     ` Moger, Babu
2024-03-29  1:06 ` [RFC PATCH v3 12/17] x86/resctrl: Add the functionality to assign the RMID Babu Moger
2024-05-03 23:33   ` Reinette Chatre
2024-05-08 17:40     ` Moger, Babu
2024-03-29  1:06 ` [RFC PATCH v3 13/17] x86/resctrl: Add the functionality to unassign " Babu Moger
2024-03-29  1:06 ` [RFC PATCH v3 14/17] x86/resctrl: Enable ABMC by default on resctrl mount Babu Moger
2024-03-29  1:06 ` [RFC PATCH v3 15/17] x86/resctrl: Introduce the interface switch between ABMC and legacy_mbm Babu Moger
2024-03-29  1:06 ` [RFC PATCH v3 16/17] x86/resctrl: Introduce interface to list assignment states of all the groups Babu Moger
2024-03-29  1:06 ` [RFC PATCH v3 17/17] x86/resctrl: Introduce interface to modify assignment states of " Babu Moger
2024-04-17 17:45   ` Peter Newman
2024-04-17 19:39     ` Moger, Babu
2024-04-17 20:56       ` Peter Newman
2024-04-17 22:52         ` Moger, Babu
2024-05-02 23:00           ` Reinette Chatre
2024-05-03 16:14             ` Moger, Babu
2024-05-03 21:16               ` Reinette Chatre
2024-05-06 18:09                 ` Moger, Babu
2024-05-02 16:21   ` Dave Martin
2024-05-02 17:52     ` Reinette Chatre
2024-05-02 18:11       ` Moger, Babu
2024-05-03 14:53       ` Dave Martin
2024-05-03 21:15         ` Reinette Chatre
2024-04-04 19:08 ` [RFC PATCH v3 00/17] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC) Peter Newman
2024-04-04 20:02   ` Moger, Babu
2024-04-22 16:34     ` Dave Martin
2024-04-22 20:44       ` Moger, Babu
2024-04-23 12:37         ` Dave Martin
2024-04-24  4:15           ` Reinette Chatre
2024-04-24 14:16             ` Dave Martin
2024-04-24 19:10               ` Moger, Babu
2024-04-22 16:33 ` Dave Martin
2024-04-22 18:23   ` Peter Newman
2024-04-23 12:38     ` Dave Martin
2024-04-23 15:43       ` Moger, Babu
2024-04-23 16:17         ` Dave Martin
2024-05-01 17:48 ` Peter Newman
2024-05-02 16:25   ` Moger, Babu
2024-05-02 17:50     ` Peter Newman
2024-05-02 20:14       ` Moger, Babu
2024-05-02 23:21         ` Reinette Chatre
2024-05-03  0:57           ` Peter Newman
2024-05-03 20:44             ` Moger, Babu
2024-05-03 21:00               ` Peter Newman
2024-05-03 21:15                 ` Reinette Chatre
2024-05-17 21:51                   ` Peter Newman
2024-05-20 14:25                     ` Moger, Babu
2024-05-20 16:00                       ` Peter Newman
2024-05-20 18:03                         ` Moger, Babu
2024-05-10  0:57               ` Moger, Babu
2024-05-10  2:47                 ` Reinette Chatre
2024-05-03 21:14             ` Reinette Chatre
2024-05-03 23:24 ` Reinette Chatre
2024-05-06 17:18   ` Moger, Babu
2024-05-07 20:26     ` Reinette Chatre
2024-05-08 20:07       ` Moger, Babu
2024-05-08 20:41         ` Reinette Chatre
2024-05-08 23:29           ` Moger, Babu
2024-05-09 18:07             ` Reinette Chatre
2024-05-09 20:34               ` 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=b367a6ba-3ff1-4173-bf71-cd7a04bf9882@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.