mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Reinette Chatre <reinette.chatre@intel.com>
To: Babu Moger <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 v6 04/22] x86/resctrl: Detect Assignable Bandwidth Monitoring feature details
Date: Fri, 16 Aug 2024 14:30:20 -0700	[thread overview]
Message-ID: <daa0fdd5-bc86-45a5-a684-a88816f3cfe1@intel.com> (raw)
In-Reply-To: <851bfbee0fd53631acae8d209796d52ce8051e68.1722981659.git.babu.moger@amd.com>

Hi Babu,

On 8/6/24 3:00 PM, Babu Moger wrote:
> ABMC feature details are reported via CPUID Fn8000_0020_EBX_x5.
> Bits Description
> 15:0 MAX_ABMC Maximum Supported Assignable Bandwidth
>       Monitoring Counter ID + 1
> 
> The feature details are documented in 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).
> 
> Detect the feature and number of assignable counters supported.
> 
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=206537
> Signed-off-by: Babu Moger <babu.moger@amd.com>
> ---
> v6: Commit message update.
>      Renamed abmc_capable to mbm_cntr_assignable.
> 
> v5: Name change num_cntrs to num_mbm_cntrs.
>      Moved abmc_capable to resctrl_mon.
> 
> v4: Removed resctrl_arch_has_abmc(). Added all the code inline. We dont
>      need to separate this as arch code.
> 
> v3: Removed changes related to mon_features.
>      Moved rdt_cpu_has to core.c and added new function resctrl_arch_has_abmc.
>      Also moved the fields mbm_assign_capable and mbm_assign_cntrs to
>      rdt_resource. (James)
> 
> v2: Changed the field name to mbm_assign_capable from abmc_capable.
> ---
>   arch/x86/kernel/cpu/resctrl/monitor.c | 12 ++++++++++++
>   include/linux/resctrl.h               |  4 ++++
>   2 files changed, 16 insertions(+)
> 
> diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
> index 795fe91a8feb..88312b5f0069 100644
> --- a/arch/x86/kernel/cpu/resctrl/monitor.c
> +++ b/arch/x86/kernel/cpu/resctrl/monitor.c
> @@ -1229,6 +1229,18 @@ int __init rdt_get_mon_l3_config(struct rdt_resource *r)
>   			mbm_local_event.configurable = true;
>   			mbm_config_rftype_init("mbm_local_bytes_config");
>   		}
> +
> +		if (rdt_cpu_has(X86_FEATURE_ABMC)) {
> +			r->mon.mbm_cntr_assignable = true;
> +			/*
> +			 * Query CPUID_Fn80000020_EBX_x05 for number of
> +			 * ABMC counters.
> +			 */

At this point this comment seems unnecessary. Not an issue, it can stay of you
prefer.

> +			cpuid_count(0x80000020, 5, &eax, &ebx, &ecx, &edx);
> +			r->mon.num_mbm_cntrs = (ebx & 0xFFFF) + 1;
> +			if (WARN_ON(r->mon.num_mbm_cntrs > 64))

Please document where this "64" limit comes from. This is potentially a problem
since the resctrl fs managed bitmap is hardcoded to be of size 64 but the arch code
sets how many counters are supported. Will comment more later on bitmap portions, but
to handle this I expect resctrl fs should at least sanity check the number of counters
before attempting to initialize its bitmap ... or better, as James suggests, make the
bitmap creation dynamic.

> +				r->mon.num_mbm_cntrs = 64;
> +		}
>   	}
>   
>   	l3_mon_evt_init(r);
> diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h
> index 1097559f4987..72c498deeb5e 100644
> --- a/include/linux/resctrl.h
> +++ b/include/linux/resctrl.h
> @@ -185,10 +185,14 @@ enum resctrl_scope {
>   /**
>    * struct resctrl_mon - Monitoring related data
>    * @num_rmid:		Number of RMIDs available
> + * @num_mbm_cntrs:	Number of monitoring counters
> + * @mbm_cntr_assignable:Is system capable of supporting monitor assignment?
>    * @evt_list:		List of monitoring events
>    */
>   struct resctrl_mon {
>   	int			num_rmid;
> +	int			num_mbm_cntrs;
> +	bool			mbm_cntr_assignable;
>   	struct list_head	evt_list;
>   };
>   

Reinette

  parent reply	other threads:[~2024-08-16 21:30 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-06 22:00 [PATCH v6 00/22] x86/resctrl : Support AMD Assignable Bandwidth Monitoring Counters (ABMC) 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 [this message]
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
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=daa0fdd5-bc86-45a5-a684-a88816f3cfe1@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=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®