All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Yu, Fenghua" <fenghua.yu@intel.com>
To: Babu Moger <babu.moger@amd.com>,
	"corbet@lwn.net" <corbet@lwn.net>,
	"Chatre, Reinette" <reinette.chatre@intel.com>,
	"tglx@linutronix.de" <tglx@linutronix.de>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"bp@alien8.de" <bp@alien8.de>
Cc: "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>,
	"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
	"quic_neeraju@quicinc.com" <quic_neeraju@quicinc.com>,
	"rdunlap@infradead.org" <rdunlap@infradead.org>,
	"damien.lemoal@opensource.wdc.com"
	<damien.lemoal@opensource.wdc.com>,
	"songmuchun@bytedance.com" <songmuchun@bytedance.com>,
	"peterz@infradead.org" <peterz@infradead.org>,
	"jpoimboe@kernel.org" <jpoimboe@kernel.org>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"Bae, Chang Seok" <chang.seok.bae@intel.com>,
	"pawan.kumar.gupta@linux.intel.com" 
	<pawan.kumar.gupta@linux.intel.com>,
	"jmattson@google.com" <jmattson@google.com>,
	"daniel.sneddon@linux.intel.com" <daniel.sneddon@linux.intel.com>,
	"sandipan.das@amd.com" <sandipan.das@amd.com>,
	"Luck, Tony" <tony.luck@intel.com>,
	"james.morse@arm.com" <james.morse@arm.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"bagasdotme@gmail.com" <bagasdotme@gmail.com>,
	"Eranian, Stephane" <eranian@google.com>
Subject: RE: [PATCH v8 03/13] x86/cpufeatures: Add Bandwidth Monitoring Event Configuration feature flag
Date: Wed, 23 Nov 2022 18:17:23 +0000	[thread overview]
Message-ID: <IA1PR11MB60979EB9FBE4C95381BF9F8A9B0C9@IA1PR11MB6097.namprd11.prod.outlook.com> (raw)
In-Reply-To: <166759201032.3281208.8545863740733338256.stgit@bmoger-ubuntu>

Hi, Babu,

> Newer AMD processors support the new feature Bandwidth Monitoring Event
> Configuration (BMEC).
> 
> The feature support is identified via CPUID Fn8000_0020_EBX_x0 (ECX=0).
> Bits    Field Name    Description
> 3       EVT_CFG       Bandwidth Monitoring Event Configuration (BMEC)
> 
> Currently, 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 of 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.
> 
> Each BMEC event has a configuration MSR, QOS_EVT_CFG (0xc000_0400h +
> EventID) which contains one field for each bandwidth type that can be used to
> configure the bandwidth event to track any combination of supported
> bandwidth types. The event will count requests from every bandwidth type bit
> that is set in the corresponding configuration register.
> 
> 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
> ====    ========================================================
> 
> 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.
> 
> Feature description is available in the specification, "AMD64 Technology
> Platform Quality of Service Extensions, Revision: 1.03 Publication
> 
> Link: https://www.amd.com/en/support/tech-docs/amd64-technology-
> platform-quality-service-extensions
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537
> Signed-off-by: Babu Moger <babu.moger@amd.com>
> ---
>  arch/x86/include/asm/cpufeatures.h |    1 +
>  arch/x86/kernel/cpu/cpuid-deps.c   |    1 +
>  arch/x86/kernel/cpu/scattered.c    |    1 +
>  3 files changed, 3 insertions(+)
> 
> diff --git a/arch/x86/include/asm/cpufeatures.h
> b/arch/x86/include/asm/cpufeatures.h
> index d68b4c9c181d..6732ca0117be 100644
> --- a/arch/x86/include/asm/cpufeatures.h
> +++ b/arch/x86/include/asm/cpufeatures.h
> @@ -306,6 +306,7 @@
>  #define X86_FEATURE_RSB_VMEXIT_LITE	(11*32+17) /* "" Fill RSB on VM
> exit when EIBRS is enabled */
>  #define X86_FEATURE_CALL_DEPTH		(11*32+18) /* "" Call depth
> tracking for RSB stuffing */
>  #define X86_FEATURE_SMBA		(11*32+19) /* Slow Memory
> Bandwidth Allocation */
> +#define X86_FEATURE_BMEC		(11*32+20) /* AMD Bandwidth
> Monitoring Event Configuration (BMEC) */
> 
>  /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */
>  #define X86_FEATURE_AVX_VNNI		(12*32+ 4) /* AVX VNNI
> instructions */
> diff --git a/arch/x86/kernel/cpu/cpuid-deps.c b/arch/x86/kernel/cpu/cpuid-
> deps.c
> index c881bcafba7d..4555f9596ccf 100644
> --- a/arch/x86/kernel/cpu/cpuid-deps.c
> +++ b/arch/x86/kernel/cpu/cpuid-deps.c
> @@ -68,6 +68,7 @@ static const struct cpuid_dep cpuid_deps[] = {
>  	{ X86_FEATURE_CQM_OCCUP_LLC,
> 	X86_FEATURE_CQM_LLC   },
>  	{ X86_FEATURE_CQM_MBM_TOTAL,
> 	X86_FEATURE_CQM_LLC   },
>  	{ X86_FEATURE_CQM_MBM_LOCAL,
> 	X86_FEATURE_CQM_LLC   },
> +	{ X86_FEATURE_BMEC,			X86_FEATURE_CQM_LLC   },

Shouldn't X86_FEATURE_BMEC really depend on X86_FEATURE_CQM_MBM_LOCAL and _TOTAL?

CQM_MBM_LOCAL and/or _TOTAL can be disabled but CQM_LLC can still be enabled. In this
case, BMEC shouldn't be enabled, right? But with this patch, BMEC will be enabled but it won't
work well as CQM_MBM_TOTAL/_LOCAL are not enabled.

You may remove the above line and add these two lines:

+	{ X86_FEATURE_BMEC,			X86_FEATURE_CQM_MBM_TOTAL   },  
+	{ X86_FEATURE_BMEC,			X86_FEATURE_CQM_MBM_LOCAL   },  

Thanks.

-Fenghua

  parent reply	other threads:[~2022-11-23 18:18 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-04 19:59 [PATCH v8 00/13] Support for AMD QoS new features Babu Moger
2022-11-04 19:59 ` [PATCH v8 01/13] x86/cpufeatures: Add Slow Memory Bandwidth Allocation feature flag Babu Moger
2022-11-23 18:21   ` Yu, Fenghua
2022-11-23 23:09     ` Moger, Babu
2022-11-04 20:00 ` [PATCH v8 02/13] x86/resctrl: Add a new resource type RDT_RESOURCE_SMBA Babu Moger
2022-11-23  0:04   ` Reinette Chatre
2022-11-23 15:13     ` Moger, Babu
2022-11-04 20:00 ` [PATCH v8 03/13] x86/cpufeatures: Add Bandwidth Monitoring Event Configuration feature flag Babu Moger
2022-11-23  0:09   ` Reinette Chatre
2022-11-23 15:16     ` Moger, Babu
2022-11-23 18:17   ` Yu, Fenghua [this message]
2022-11-23 23:06     ` Moger, Babu
2022-11-04 20:00 ` [PATCH v8 04/13] x86/resctrl: Include new features in command line options Babu Moger
2022-11-23 18:26   ` Yu, Fenghua
2022-11-23 23:10     ` Moger, Babu
2022-11-04 20:00 ` [PATCH v8 05/13] x86/resctrl: Detect and configure Slow Memory Bandwidth Allocation Babu Moger
2022-11-23  0:12   ` Reinette Chatre
2022-11-23 15:17     ` Moger, Babu
2022-11-30 18:43     ` Moger, Babu
2022-11-30 20:07       ` Reinette Chatre
2022-11-30 20:40         ` Moger, Babu
2022-12-01  0:35           ` Reinette Chatre
2022-12-01 13:56             ` Moger, Babu
2022-11-04 20:00 ` [PATCH v8 06/13] x86/resctrl: Remove the init attribute for rdt_cpu_has() Babu Moger
2022-11-23  0:13   ` Reinette Chatre
2022-11-23 17:48     ` Moger, Babu
2022-11-04 20:00 ` [PATCH v8 07/13] x86/resctrl: Introduce data structure to support monitor configuration Babu Moger
2022-11-23  0:14   ` Reinette Chatre
2022-11-23 18:23     ` Moger, Babu
2022-11-23 19:05       ` Reinette Chatre
2022-11-23 21:46         ` Moger, Babu
2022-11-04 20:00 ` [PATCH v8 08/13] x86/resctrl: Add sysfs interface to read mbm_total_bytes_config Babu Moger
2022-11-23  0:19   ` Reinette Chatre
2022-11-23 18:35     ` Moger, Babu
2022-11-23 22:27       ` Reinette Chatre
2022-11-23 22:55         ` Moger, Babu
2022-11-04 20:01 ` [PATCH v8 09/13] x86/resctrl: Add sysfs interface to read mbm_local_bytes_config Babu Moger
2022-11-04 20:01 ` [PATCH v8 10/13] x86/resctrl: Add sysfs interface to write mbm_total_bytes_config Babu Moger
2022-11-07 10:21   ` Peter Newman
2022-11-07 18:50     ` Moger, Babu
2022-11-07 19:00     ` Moger, Babu
2022-11-22 23:43       ` Reinette Chatre
2022-11-23 21:44         ` Moger, Babu
2022-11-23 22:22           ` Reinette Chatre
2022-11-28 16:01             ` Moger, Babu
2022-11-23  0:22   ` Reinette Chatre
2022-11-23 22:44     ` Moger, Babu
2022-12-07 17:20   ` James Morse
2022-12-07 17:24     ` James Morse
2022-12-08  0:02     ` Moger, Babu
2022-12-13 17:55       ` James Morse
2022-12-13 23:46         ` Moger, Babu
2022-11-04 20:01 ` [PATCH v8 11/13] x86/resctrl: Add sysfs interface to write mbm_local_bytes_config Babu Moger
2022-11-04 20:01 ` [PATCH v8 12/13] x86/resctrl: Replace smp_call_function_many() with on_each_cpu_mask() Babu Moger
2022-11-04 20:01 ` [PATCH v8 13/13] Documentation/x86: Update resctrl.rst for new features Babu Moger
2022-11-23  0:26   ` Reinette Chatre
2022-11-23 23:02     ` Moger, Babu
2022-11-15 20:50 ` [PATCH v8 00/13] Support for AMD QoS " Moger, Babu
2022-11-15 21:07   ` Reinette Chatre
2022-11-15 21: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=IA1PR11MB60979EB9FBE4C95381BF9F8A9B0C9@IA1PR11MB6097.namprd11.prod.outlook.com \
    --to=fenghua.yu@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=babu.moger@amd.com \
    --cc=bagasdotme@gmail.com \
    --cc=bp@alien8.de \
    --cc=chang.seok.bae@intel.com \
    --cc=corbet@lwn.net \
    --cc=damien.lemoal@opensource.wdc.com \
    --cc=daniel.sneddon@linux.intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=eranian@google.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=jmattson@google.com \
    --cc=jpoimboe@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paulmck@kernel.org \
    --cc=pawan.kumar.gupta@linux.intel.com \
    --cc=pbonzini@redhat.com \
    --cc=peterz@infradead.org \
    --cc=quic_neeraju@quicinc.com \
    --cc=rdunlap@infradead.org \
    --cc=reinette.chatre@intel.com \
    --cc=sandipan.das@amd.com \
    --cc=songmuchun@bytedance.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.org \
    /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.