Archive-only list for patches
 help / color / mirror / Atom feed
From: Tony Luck <tony.luck@intel.com>
To: Fenghua Yu <fenghua.yu@intel.com>,
	Reinette Chatre <reinette.chatre@intel.com>,
	Peter Newman <peternewman@google.com>,
	Jonathan Corbet <corbet@lwn.net>,
	x86@kernel.org
Cc: James Morse <james.morse@arm.com>,
	Jamie Iles <quic_jiles@quicinc.com>,
	Babu Moger <babu.moger@amd.com>,
	Randy Dunlap <rdunlap@infradead.org>,
	"Shaopeng Tan (Fujitsu)" <tan.shaopeng@fujitsu.com>,
	linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org,
	patches@lists.linux.dev, Tony Luck <tony.luck@intel.com>
Subject: [PATCH v9 2/9] x86/resctrl: Prepare for per-ctrl_mon group mba_MBps control
Date: Wed, 13 Nov 2024 16:17:04 -0800	[thread overview]
Message-ID: <20241114001712.80315-3-tony.luck@intel.com> (raw)
In-Reply-To: <20241114001712.80315-1-tony.luck@intel.com>

Resctrl uses local memory bandwidth event as input to the feedback
loop when the mba_MBps mount option is used. This means that this
mount option cannot be used on systems that only support monitoring
of total bandwidth.

Prepare to allow users to choose the input event independently for
each ctrl_mon group.

Signed-off-by: Tony Luck <tony.luck@intel.com>
---
 include/linux/resctrl.h                | 2 ++
 arch/x86/kernel/cpu/resctrl/internal.h | 2 ++
 arch/x86/kernel/cpu/resctrl/core.c     | 3 +++
 arch/x86/kernel/cpu/resctrl/rdtgroup.c | 6 ++++++
 4 files changed, 13 insertions(+)

diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h
index d94abba1c716..fd05b937e2f4 100644
--- a/include/linux/resctrl.h
+++ b/include/linux/resctrl.h
@@ -49,6 +49,8 @@ enum resctrl_event_id {
 	QOS_L3_MBM_LOCAL_EVENT_ID	= 0x03,
 };
 
+extern enum resctrl_event_id mba_mbps_default_event;
+
 /**
  * struct resctrl_staged_config - parsed configuration to be applied
  * @new_ctrl:		new ctrl value to be loaded
diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
index faaff9d64102..485800055a7d 100644
--- a/arch/x86/kernel/cpu/resctrl/internal.h
+++ b/arch/x86/kernel/cpu/resctrl/internal.h
@@ -283,6 +283,7 @@ struct pseudo_lock_region {
  *				monitor only or ctrl_mon group
  * @mon:			mongroup related data
  * @mode:			mode of resource group
+ * @mba_mbps_event:		input monitoring event id when mba_sc is enabled
  * @plr:			pseudo-locked region
  */
 struct rdtgroup {
@@ -295,6 +296,7 @@ struct rdtgroup {
 	enum rdt_group_type		type;
 	struct mongroup			mon;
 	enum rdtgrp_mode		mode;
+	enum resctrl_event_id		mba_mbps_event;
 	struct pseudo_lock_region	*plr;
 };
 
diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
index f3ee5859b69d..94bf559966d6 100644
--- a/arch/x86/kernel/cpu/resctrl/core.c
+++ b/arch/x86/kernel/cpu/resctrl/core.c
@@ -963,6 +963,9 @@ static __init bool get_rdt_mon_resources(void)
 	if (!rdt_mon_features)
 		return false;
 
+	if (is_mbm_local_enabled())
+		mba_mbps_default_event = QOS_L3_MBM_LOCAL_EVENT_ID;
+
 	return !rdt_get_mon_l3_config(r);
 }
 
diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index 2b198ef95e1e..a8022bddf9f7 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -65,6 +65,8 @@ static void rdtgroup_destroy_root(void);
 
 struct dentry *debugfs_resctrl;
 
+enum resctrl_event_id mba_mbps_default_event;
+
 static bool resctrl_debug;
 
 void rdt_last_cmd_clear(void)
@@ -3611,6 +3613,8 @@ static int rdtgroup_mkdir_ctrl_mon(struct kernfs_node *parent_kn,
 			rdt_last_cmd_puts("kernfs subdir error\n");
 			goto out_del_list;
 		}
+		if (is_mba_sc(NULL))
+			rdtgrp->mba_mbps_event = mba_mbps_default_event;
 	}
 
 	goto out_unlock;
@@ -3970,6 +3974,8 @@ static void __init rdtgroup_setup_default(void)
 	rdtgroup_default.closid = RESCTRL_RESERVED_CLOSID;
 	rdtgroup_default.mon.rmid = RESCTRL_RESERVED_RMID;
 	rdtgroup_default.type = RDTCTRL_GROUP;
+	if (supports_mba_mbps())
+		rdtgroup_default.mba_mbps_event = mba_mbps_default_event;
 	INIT_LIST_HEAD(&rdtgroup_default.mon.crdtgrp_list);
 
 	list_add(&rdtgroup_default.rdtgroup_list, &rdt_all_groups);
-- 
2.47.0


  parent reply	other threads:[~2024-11-14  0:17 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-14  0:17 [PATCH v9 0/9] x86/resctrl: mba_MBps enhancement Tony Luck
2024-11-14  0:17 ` [PATCH v9 1/9] x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags Tony Luck
2024-11-15 16:19   ` Moger, Babu
2024-11-20  0:38   ` Reinette Chatre
2024-11-21 17:21     ` Luck, Tony
2024-11-14  0:17 ` Tony Luck [this message]
2024-11-15 16:20   ` [PATCH v9 2/9] x86/resctrl: Prepare for per-ctrl_mon group mba_MBps control Moger, Babu
2024-11-18 23:47     ` Luck, Tony
2024-11-20  1:08   ` Reinette Chatre
2024-11-21 17:33     ` Luck, Tony
2024-11-22 21:33       ` Reinette Chatre
2024-11-14  0:17 ` [PATCH v9 3/9] x86/resctrl: Modify update_mba_bw() to use per ctrl_mon group event Tony Luck
2024-11-15 16:21   ` Moger, Babu
2024-11-19  0:01     ` Luck, Tony
2024-11-19  0:51       ` Reinette Chatre
2024-11-19  1:44         ` Luck, Tony
2024-11-19 17:36           ` Reinette Chatre
2024-11-20  3:39   ` Reinette Chatre
2024-11-14  0:17 ` [PATCH v9 4/9] x86/resctrl: Compute memory bandwidth for all supported events Tony Luck
2024-11-15 13:53   ` Peter Newman
2024-11-15 16:59     ` Luck, Tony
2024-11-20  3:45   ` Reinette Chatre
2024-11-21 17:36     ` Luck, Tony
2024-11-14  0:17 ` [PATCH v9 5/9] x86/resctrl: Relax checks for mba_MBps mount option Tony Luck
2024-11-20  3:54   ` Reinette Chatre
2024-11-21 17:39     ` Luck, Tony
2024-11-14  0:17 ` [PATCH v9 6/9] x86/resctrl: Add "mba_MBps_event" file to ctrl_mon directories Tony Luck
2024-11-20  4:03   ` Reinette Chatre
2024-11-21 17:42     ` Luck, Tony
2024-11-14  0:17 ` [PATCH v9 7/9] x86/resctrl: Add write option to "mba_MBps_event" file Tony Luck
2024-11-14  0:17 ` [PATCH v9 8/9] x86/resctrl: Make mba_sc use total bandwidth if local is not supported Tony Luck
2024-11-14  0:17 ` [PATCH v9 9/9] x86/resctrl: Document the new "mba_MBps_event" file Tony Luck

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=20241114001712.80315-3-tony.luck@intel.com \
    --to=tony.luck@intel.com \
    --cc=babu.moger@amd.com \
    --cc=corbet@lwn.net \
    --cc=fenghua.yu@intel.com \
    --cc=james.morse@arm.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=patches@lists.linux.dev \
    --cc=peternewman@google.com \
    --cc=quic_jiles@quicinc.com \
    --cc=rdunlap@infradead.org \
    --cc=reinette.chatre@intel.com \
    --cc=tan.shaopeng@fujitsu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox