All of lore.kernel.org
 help / color / mirror / Atom feed
From: "tip-bot2 for James Morse" <tip-bot2@linutronix.de>
To: linux-tip-commits@vger.kernel.org
Cc: James Morse <james.morse@arm.com>, Borislav Petkov <bp@suse.de>,
	Jamie Iles <quic_jiles@quicinc.com>,
	Shaopeng Tan <tan.shaopeng@fujitsu.com>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Xin Hao <xhao@linux.alibaba.com>,
	Cristian Marussi <cristian.marussi@arm.com>,
	x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [tip: x86/cache] x86/resctrl: Abstract and use supports_mba_mbps()
Date: Fri, 23 Sep 2022 18:01:54 -0000	[thread overview]
Message-ID: <166395611482.401.3273433576845656401.tip-bot2@tip-bot2> (raw)
In-Reply-To: <20220902154829.30399-8-james.morse@arm.com>

The following commit has been merged into the x86/cache branch of tip:

Commit-ID:     b045c215866393419fb960432ed6be69a0113ee1
Gitweb:        https://git.kernel.org/tip/b045c215866393419fb960432ed6be69a0113ee1
Author:        James Morse <james.morse@arm.com>
AuthorDate:    Fri, 02 Sep 2022 15:48:15 
Committer:     Borislav Petkov <bp@suse.de>
CommitterDate: Thu, 22 Sep 2022 16:10:11 +02:00

x86/resctrl: Abstract and use supports_mba_mbps()

To determine whether the mba_MBps option to resctrl should be supported,
resctrl tests the boot CPUs' x86_vendor.

This isn't portable, and needs abstracting behind a helper so this check
can be part of the filesystem code that moves to /fs/.

Re-use the tests set_mba_sc() does to determine if the mba_sc is supported
on this system. An 'alloc_capable' test is added so that support for the
controls isn't implied by the 'delay_linear' property, which is always
true for MPAM. Because mbm_update() only update mba_sc if the mbm_local
counters are enabled, supports_mba_mbps() checks is_mbm_local_enabled().
(instead of using is_mbm_enabled(), which checks both).

Signed-off-by: James Morse <james.morse@arm.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Jamie Iles <quic_jiles@quicinc.com>
Reviewed-by: Shaopeng Tan <tan.shaopeng@fujitsu.com>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Tested-by: Xin Hao <xhao@linux.alibaba.com>
Tested-by: Shaopeng Tan <tan.shaopeng@fujitsu.com>
Tested-by: Cristian Marussi <cristian.marussi@arm.com>
Link: https://lore.kernel.org/r/20220902154829.30399-8-james.morse@arm.com
---
 arch/x86/kernel/cpu/resctrl/rdtgroup.c | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index b32ceff..4ee2626 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -1890,17 +1890,26 @@ void rdt_domain_reconfigure_cdp(struct rdt_resource *r)
 }
 
 /*
- * Enable or disable the MBA software controller
- * which helps user specify bandwidth in MBps.
  * MBA software controller is supported only if
  * MBM is supported and MBA is in linear scale.
  */
+static bool supports_mba_mbps(void)
+{
+	struct rdt_resource *r = &rdt_resources_all[RDT_RESOURCE_MBA].r_resctrl;
+
+	return (is_mbm_local_enabled() &&
+		r->alloc_capable && is_mba_linear());
+}
+
+/*
+ * Enable or disable the MBA software controller
+ * which helps user specify bandwidth in MBps.
+ */
 static int set_mba_sc(bool mba_sc)
 {
 	struct rdt_resource *r = &rdt_resources_all[RDT_RESOURCE_MBA].r_resctrl;
 
-	if (!is_mbm_enabled() || !is_mba_linear() ||
-	    mba_sc == is_mba_sc(r))
+	if (!supports_mba_mbps() || mba_sc == is_mba_sc(r))
 		return -EINVAL;
 
 	r->membw.mba_sc = mba_sc;
@@ -2255,7 +2264,7 @@ static int rdt_parse_param(struct fs_context *fc, struct fs_parameter *param)
 		ctx->enable_cdpl2 = true;
 		return 0;
 	case Opt_mba_mbps:
-		if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
+		if (!supports_mba_mbps())
 			return -EINVAL;
 		ctx->enable_mba_mbps = true;
 		return 0;

  reply	other threads:[~2022-09-23 18:03 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-02 15:48 [PATCH v6 00/21] x86/resctrl: Make resctrl_arch_rmid_read() return values in bytes James Morse
2022-09-02 15:48 ` [PATCH v6 01/21] x86/resctrl: Kill off alloc_enabled James Morse
2022-09-23 18:02   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 02/21] x86/resctrl: Merge mon_capable and mon_enabled James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 03/21] x86/resctrl: Add domain online callback for resctrl work James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 04/21] x86/resctrl: Group struct rdt_hw_domain cleanup James Morse
2022-09-07  6:28   ` haoxin
2022-09-08 17:01     ` James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 05/21] x86/resctrl: Add domain offline callback for resctrl work James Morse
2022-09-07  6:29   ` haoxin
2022-09-08 17:00     ` James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 06/21] x86/resctrl: Remove set_mba_sc()s control array re-initialisation James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 07/21] x86/resctrl: Abstract and use supports_mba_mbps() James Morse
2022-09-23 18:01   ` tip-bot2 for James Morse [this message]
2022-09-02 15:48 ` [PATCH v6 08/21] x86/resctrl: Create mba_sc configuration in the rdt_domain James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 09/21] x86/resctrl: Switch over to the resctrl mbps_val list James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 10/21] x86/resctrl: Remove architecture copy of mbps_val James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 11/21] x86/resctrl: Allow update_mba_bw() to update controls directly James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 12/21] x86/resctrl: Calculate bandwidth from the previous __mon_event_count() chunks James Morse
2022-09-07  6:47   ` haoxin
2022-09-08 17:00     ` James Morse
2022-09-08 21:13       ` Reinette Chatre
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 13/21] x86/resctrl: Add per-rmid arch private storage for overflow and chunks James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 14/21] x86/resctrl: Allow per-rmid arch private storage to be reset James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 15/21] x86/resctrl: Abstract __rmid_read() James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 16/21] x86/resctrl: Pass the required parameters into resctrl_arch_rmid_read() James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 17/21] x86/resctrl: Move mbm_overflow_count() " James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 18/21] x86/resctrl: Move get_corrected_mbm_count() " James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 19/21] x86/resctrl: Rename and change the units of resctrl_cqm_threshold James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 20/21] x86/resctrl: Add resctrl_rmid_realloc_limit to abstract x86's boot_cpu_data James Morse
2022-09-07  6:26   ` haoxin
2022-09-08 17:01     ` James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-02 15:48 ` [PATCH v6 21/21] x86/resctrl: Make resctrl_arch_rmid_read() return values in bytes James Morse
2022-09-23 18:01   ` [tip: x86/cache] " tip-bot2 for James Morse
2022-09-13  1:00 ` [PATCH v6 00/21] " tan.shaopeng
2022-09-22  9:40   ` James Morse

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=166395611482.401.3273433576845656401.tip-bot2@tip-bot2 \
    --to=tip-bot2@linutronix.de \
    --cc=bp@suse.de \
    --cc=cristian.marussi@arm.com \
    --cc=james.morse@arm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=quic_jiles@quicinc.com \
    --cc=reinette.chatre@intel.com \
    --cc=tan.shaopeng@fujitsu.com \
    --cc=x86@kernel.org \
    --cc=xhao@linux.alibaba.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.