mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: James Morse <james.morse@arm.com>
To: x86@kernel.org, linux-kernel@vger.kernel.org
Cc: Reinette Chatre <reinette.chatre@intel.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	H Peter Anvin <hpa@zytor.com>, Babu Moger <Babu.Moger@amd.com>,
	James Morse <james.morse@arm.com>,
	shameerali.kolothum.thodi@huawei.com,
	D Scott Phillips OS <scott@os.amperecomputing.com>,
	carl@os.amperecomputing.com, lcherian@marvell.com,
	bobo.shaobowang@huawei.com, tan.shaopeng@fujitsu.com,
	baolin.wang@linux.alibaba.com,
	Jamie Iles <quic_jiles@quicinc.com>,
	Xin Hao <xhao@linux.alibaba.com>,
	peternewman@google.com, dfustini@baylibre.com,
	amitsinght@marvell.com, David Hildenbrand <david@redhat.com>,
	Rex Nie <rex.nie@jaguarmicro.com>,
	Dave Martin <dave.martin@arm.com>, Koba Ko <kobak@nvidia.com>,
	Shanker Donthineni <sdonthineni@nvidia.com>,
	Shaopeng Tan <tan.shaopeng@jp.fujitsu.com>,
	Tony Luck <tony.luck@intel.com>
Subject: [PATCH v6 18/42] x86/resctrl: Move the is_mbm_*_enabled() helpers to asm/resctrl.h
Date: Fri,  7 Feb 2025 18:17:59 +0000	[thread overview]
Message-ID: <20250207181823.6378-19-james.morse@arm.com> (raw)
In-Reply-To: <20250207181823.6378-1-james.morse@arm.com>

The architecture specific parts of resctrl provide helpers like
is_mbm_total_enabled() and is_mbm_local_enabled() to hide accesses
to the rdt_mon_features bitmap.

Exposing a group of helpers between the architecture and filesystem code
is preferable to a single unsigned-long like rdt_mon_features. Helpers
can be more readable and have a well defined behaviour, while allowing
architectures to hide more complex behaviour.

Once the filesystem parts of resctrl are moved, these existing helpers can
no longer live in internal.h. Move them to include/linux/resctrl.h
Once these are exposed to the wider kernel, they should have a
'resctrl_arch_' prefix, to fit the rest of the arch<->fs interface.

Move and rename the helpers that touch rdt_mon_features directly.
is_mbm_event() and is_mbm_enabled() are only called from rdtgroup.c,
so can be moved into that file.

Signed-off-by: James Morse <james.morse@arm.com>
Tested-by: Carl Worth <carl@os.amperecomputing.com> # arm64
Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
---
Changes since v5:
 * Removed the word 'export' due to its kernel-specific meaning.
 * Reworded commit message.
---
 arch/x86/include/asm/resctrl.h            | 16 +++++++++
 arch/x86/kernel/cpu/resctrl/core.c        |  8 ++---
 arch/x86/kernel/cpu/resctrl/ctrlmondata.c |  4 +--
 arch/x86/kernel/cpu/resctrl/internal.h    | 27 ---------------
 arch/x86/kernel/cpu/resctrl/monitor.c     | 19 ++++++-----
 arch/x86/kernel/cpu/resctrl/rdtgroup.c    | 40 +++++++++++++++--------
 6 files changed, 59 insertions(+), 55 deletions(-)

diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h
index 52f2326e2b1e..6d4c7ea2c9e3 100644
--- a/arch/x86/include/asm/resctrl.h
+++ b/arch/x86/include/asm/resctrl.h
@@ -42,6 +42,7 @@ DECLARE_PER_CPU(struct resctrl_pqr_state, pqr_state);
 
 extern bool rdt_alloc_capable;
 extern bool rdt_mon_capable;
+extern unsigned int rdt_mon_features;
 
 DECLARE_STATIC_KEY_FALSE(rdt_enable_key);
 DECLARE_STATIC_KEY_FALSE(rdt_alloc_enable_key);
@@ -81,6 +82,21 @@ static inline void resctrl_arch_disable_mon(void)
 	static_branch_dec_cpuslocked(&rdt_enable_key);
 }
 
+static inline bool resctrl_arch_is_llc_occupancy_enabled(void)
+{
+	return (rdt_mon_features & (1 << QOS_L3_OCCUP_EVENT_ID));
+}
+
+static inline bool resctrl_arch_is_mbm_total_enabled(void)
+{
+	return (rdt_mon_features & (1 << QOS_L3_MBM_TOTAL_EVENT_ID));
+}
+
+static inline bool resctrl_arch_is_mbm_local_enabled(void)
+{
+	return (rdt_mon_features & (1 << QOS_L3_MBM_LOCAL_EVENT_ID));
+}
+
 /*
  * __resctrl_sched_in() - Writes the task's CLOSid/RMID to IA32_PQR_MSR
  *
diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
index b9c4a4e40e35..7d14d80b3f94 100644
--- a/arch/x86/kernel/cpu/resctrl/core.c
+++ b/arch/x86/kernel/cpu/resctrl/core.c
@@ -454,13 +454,13 @@ static int arch_domain_mbm_alloc(u32 num_rmid, struct rdt_hw_mon_domain *hw_dom)
 {
 	size_t tsize;
 
-	if (is_mbm_total_enabled()) {
+	if (resctrl_arch_is_mbm_total_enabled()) {
 		tsize = sizeof(*hw_dom->arch_mbm_total);
 		hw_dom->arch_mbm_total = kcalloc(num_rmid, tsize, GFP_KERNEL);
 		if (!hw_dom->arch_mbm_total)
 			return -ENOMEM;
 	}
-	if (is_mbm_local_enabled()) {
+	if (resctrl_arch_is_mbm_local_enabled()) {
 		tsize = sizeof(*hw_dom->arch_mbm_local);
 		hw_dom->arch_mbm_local = kcalloc(num_rmid, tsize, GFP_KERNEL);
 		if (!hw_dom->arch_mbm_local) {
@@ -909,9 +909,9 @@ static __init bool get_rdt_mon_resources(void)
 	if (!rdt_mon_features)
 		return false;
 
-	if (is_mbm_local_enabled())
+	if (resctrl_arch_is_mbm_local_enabled())
 		mba_mbps_default_event = QOS_L3_MBM_LOCAL_EVENT_ID;
-	else if (is_mbm_total_enabled())
+	else if (resctrl_arch_is_mbm_total_enabled())
 		mba_mbps_default_event = QOS_L3_MBM_TOTAL_EVENT_ID;
 
 	return !rdt_get_mon_l3_config(r);
diff --git a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
index 7df98fda8a32..a93b40ea0bad 100644
--- a/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
+++ b/arch/x86/kernel/cpu/resctrl/ctrlmondata.c
@@ -559,12 +559,12 @@ ssize_t rdtgroup_mba_mbps_event_write(struct kernfs_open_file *of,
 	rdt_last_cmd_clear();
 
 	if (!strcmp(buf, "mbm_local_bytes")) {
-		if (is_mbm_local_enabled())
+		if (resctrl_arch_is_mbm_local_enabled())
 			rdtgrp->mba_mbps_event = QOS_L3_MBM_LOCAL_EVENT_ID;
 		else
 			ret = -EINVAL;
 	} else if (!strcmp(buf, "mbm_total_bytes")) {
-		if (is_mbm_total_enabled())
+		if (resctrl_arch_is_mbm_total_enabled())
 			rdtgrp->mba_mbps_event = QOS_L3_MBM_TOTAL_EVENT_ID;
 		else
 			ret = -EINVAL;
diff --git a/arch/x86/kernel/cpu/resctrl/internal.h b/arch/x86/kernel/cpu/resctrl/internal.h
index 82dbc1606663..4a5996d1e060 100644
--- a/arch/x86/kernel/cpu/resctrl/internal.h
+++ b/arch/x86/kernel/cpu/resctrl/internal.h
@@ -156,7 +156,6 @@ struct rmid_read {
 	void			*arch_mon_ctx;
 };
 
-extern unsigned int rdt_mon_features;
 extern struct list_head resctrl_schema_all;
 extern bool resctrl_mounted;
 
@@ -406,32 +405,6 @@ struct msr_param {
 	u32			high;
 };
 
-static inline bool is_llc_occupancy_enabled(void)
-{
-	return (rdt_mon_features & (1 << QOS_L3_OCCUP_EVENT_ID));
-}
-
-static inline bool is_mbm_total_enabled(void)
-{
-	return (rdt_mon_features & (1 << QOS_L3_MBM_TOTAL_EVENT_ID));
-}
-
-static inline bool is_mbm_local_enabled(void)
-{
-	return (rdt_mon_features & (1 << QOS_L3_MBM_LOCAL_EVENT_ID));
-}
-
-static inline bool is_mbm_enabled(void)
-{
-	return (is_mbm_total_enabled() || is_mbm_local_enabled());
-}
-
-static inline bool is_mbm_event(int e)
-{
-	return (e >= QOS_L3_MBM_TOTAL_EVENT_ID &&
-		e <= QOS_L3_MBM_LOCAL_EVENT_ID);
-}
-
 /**
  * struct rdt_hw_resource - arch private attributes of a resctrl resource
  * @r_resctrl:		Attributes of the resource used directly by resctrl.
diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
index 1730ba814834..b7d93670ed94 100644
--- a/arch/x86/kernel/cpu/resctrl/monitor.c
+++ b/arch/x86/kernel/cpu/resctrl/monitor.c
@@ -295,11 +295,11 @@ void resctrl_arch_reset_rmid_all(struct rdt_resource *r, struct rdt_mon_domain *
 {
 	struct rdt_hw_mon_domain *hw_dom = resctrl_to_arch_mon_dom(d);
 
-	if (is_mbm_total_enabled())
+	if (resctrl_arch_is_mbm_total_enabled())
 		memset(hw_dom->arch_mbm_total, 0,
 		       sizeof(*hw_dom->arch_mbm_total) * r->num_rmid);
 
-	if (is_mbm_local_enabled())
+	if (resctrl_arch_is_mbm_local_enabled())
 		memset(hw_dom->arch_mbm_local, 0,
 		       sizeof(*hw_dom->arch_mbm_local) * r->num_rmid);
 }
@@ -569,7 +569,7 @@ void free_rmid(u32 closid, u32 rmid)
 
 	entry = __rmid_entry(idx);
 
-	if (is_llc_occupancy_enabled())
+	if (resctrl_arch_is_llc_occupancy_enabled())
 		add_rmid_to_limbo(entry);
 	else
 		list_add_tail(&entry->list, &rmid_free_lru);
@@ -761,6 +761,9 @@ static void update_mba_bw(struct rdtgroup *rgrp, struct rdt_mon_domain *dom_mbm)
 	struct rdtgroup *entry;
 	u32 cur_bw, user_bw;
 
+	if (!resctrl_arch_is_mbm_local_enabled())
+		return;
+
 	r_mba = resctrl_arch_get_resource(RDT_RESOURCE_MBA);
 	evt_id = rgrp->mba_mbps_event;
 
@@ -852,10 +855,10 @@ static void mbm_update(struct rdt_resource *r, struct rdt_mon_domain *d,
 	 * This is protected from concurrent reads from user as both
 	 * the user and overflow handler hold the global mutex.
 	 */
-	if (is_mbm_total_enabled())
+	if (resctrl_arch_is_mbm_total_enabled())
 		mbm_update_one_event(r, d, closid, rmid, QOS_L3_MBM_TOTAL_EVENT_ID);
 
-	if (is_mbm_local_enabled())
+	if (resctrl_arch_is_mbm_local_enabled())
 		mbm_update_one_event(r, d, closid, rmid, QOS_L3_MBM_LOCAL_EVENT_ID);
 }
 
@@ -1085,11 +1088,11 @@ static void l3_mon_evt_init(struct rdt_resource *r)
 {
 	INIT_LIST_HEAD(&r->evt_list);
 
-	if (is_llc_occupancy_enabled())
+	if (resctrl_arch_is_llc_occupancy_enabled())
 		list_add_tail(&llc_occupancy_event.list, &r->evt_list);
-	if (is_mbm_total_enabled())
+	if (resctrl_arch_is_mbm_total_enabled())
 		list_add_tail(&mbm_total_event.list, &r->evt_list);
-	if (is_mbm_local_enabled())
+	if (resctrl_arch_is_mbm_local_enabled())
 		list_add_tail(&mbm_local_event.list, &r->evt_list);
 }
 
diff --git a/arch/x86/kernel/cpu/resctrl/rdtgroup.c b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
index badac3f5da72..eb32fbc3abea 100644
--- a/arch/x86/kernel/cpu/resctrl/rdtgroup.c
+++ b/arch/x86/kernel/cpu/resctrl/rdtgroup.c
@@ -117,6 +117,18 @@ void rdt_staged_configs_clear(void)
 	}
 }
 
+static bool resctrl_is_mbm_enabled(void)
+{
+	return (resctrl_arch_is_mbm_total_enabled() ||
+		resctrl_arch_is_mbm_local_enabled());
+}
+
+static bool resctrl_is_mbm_event(int e)
+{
+	return (e >= QOS_L3_MBM_TOTAL_EVENT_ID &&
+		e <= QOS_L3_MBM_LOCAL_EVENT_ID);
+}
+
 /*
  * Trivial allocator for CLOSIDs. Since h/w only supports a small number,
  * we can keep a bitmap of free CLOSIDs in a single integer.
@@ -164,7 +176,7 @@ static int closid_alloc(void)
 	lockdep_assert_held(&rdtgroup_mutex);
 
 	if (IS_ENABLED(CONFIG_RESCTRL_RMID_DEPENDS_ON_CLOSID) &&
-	    is_llc_occupancy_enabled()) {
+	    resctrl_arch_is_llc_occupancy_enabled()) {
 		cleanest_closid = resctrl_find_cleanest_closid();
 		if (cleanest_closid < 0)
 			return cleanest_closid;
@@ -2378,7 +2390,7 @@ static bool supports_mba_mbps(void)
 	struct rdt_resource *rmbm = resctrl_arch_get_resource(RDT_RESOURCE_L3);
 	struct rdt_resource *r = resctrl_arch_get_resource(RDT_RESOURCE_MBA);
 
-	return (is_mbm_enabled() &&
+	return (resctrl_is_mbm_enabled() &&
 		r->alloc_capable && is_mba_linear() &&
 		r->ctrl_scope == rmbm->mon_scope);
 }
@@ -2756,7 +2768,7 @@ static int rdt_get_tree(struct fs_context *fc)
 	if (resctrl_arch_alloc_capable() || resctrl_arch_mon_capable())
 		resctrl_mounted = true;
 
-	if (is_mbm_enabled()) {
+	if (resctrl_is_mbm_enabled()) {
 		r = resctrl_arch_get_resource(RDT_RESOURCE_L3);
 		list_for_each_entry(dom, &r->mon_domains, hdr.list)
 			mbm_setup_overflow_handler(dom, MBM_OVERFLOW_INTERVAL,
@@ -3125,7 +3137,7 @@ static int mon_add_all_files(struct kernfs_node *kn, struct rdt_mon_domain *d,
 		if (ret)
 			return ret;
 
-		if (!do_sum && is_mbm_event(mevt->evtid))
+		if (!do_sum && resctrl_is_mbm_event(mevt->evtid))
 			mon_event_read(&rr, r, d, prgrp, &d->hdr.cpu_mask, mevt->evtid, true);
 	}
 
@@ -4082,9 +4094,9 @@ void resctrl_offline_mon_domain(struct rdt_resource *r, struct rdt_mon_domain *d
 	if (resctrl_mounted && resctrl_arch_mon_capable())
 		rmdir_mondata_subdir_allrdtgrp(r, d);
 
-	if (is_mbm_enabled())
+	if (resctrl_is_mbm_enabled())
 		cancel_delayed_work(&d->mbm_over);
-	if (is_llc_occupancy_enabled() && has_busy_rmid(d)) {
+	if (resctrl_arch_is_llc_occupancy_enabled() && has_busy_rmid(d)) {
 		/*
 		 * When a package is going down, forcefully
 		 * decrement rmid->ebusy. There is no way to know
@@ -4120,12 +4132,12 @@ static int domain_setup_mon_state(struct rdt_resource *r, struct rdt_mon_domain
 	u32 idx_limit = resctrl_arch_system_num_rmid_idx();
 	size_t tsize;
 
-	if (is_llc_occupancy_enabled()) {
+	if (resctrl_arch_is_llc_occupancy_enabled()) {
 		d->rmid_busy_llc = bitmap_zalloc(idx_limit, GFP_KERNEL);
 		if (!d->rmid_busy_llc)
 			return -ENOMEM;
 	}
-	if (is_mbm_total_enabled()) {
+	if (resctrl_arch_is_mbm_total_enabled()) {
 		tsize = sizeof(*d->mbm_total);
 		d->mbm_total = kcalloc(idx_limit, tsize, GFP_KERNEL);
 		if (!d->mbm_total) {
@@ -4133,7 +4145,7 @@ static int domain_setup_mon_state(struct rdt_resource *r, struct rdt_mon_domain
 			return -ENOMEM;
 		}
 	}
-	if (is_mbm_local_enabled()) {
+	if (resctrl_arch_is_mbm_local_enabled()) {
 		tsize = sizeof(*d->mbm_local);
 		d->mbm_local = kcalloc(idx_limit, tsize, GFP_KERNEL);
 		if (!d->mbm_local) {
@@ -4172,13 +4184,13 @@ int resctrl_online_mon_domain(struct rdt_resource *r, struct rdt_mon_domain *d)
 	if (err)
 		goto out_unlock;
 
-	if (is_mbm_enabled()) {
+	if (resctrl_is_mbm_enabled()) {
 		INIT_DELAYED_WORK(&d->mbm_over, mbm_handle_overflow);
 		mbm_setup_overflow_handler(d, MBM_OVERFLOW_INTERVAL,
 					   RESCTRL_PICK_ANY_CPU);
 	}
 
-	if (is_llc_occupancy_enabled())
+	if (resctrl_arch_is_llc_occupancy_enabled())
 		INIT_DELAYED_WORK(&d->cqm_limbo, cqm_handle_limbo);
 
 	/*
@@ -4233,12 +4245,12 @@ void resctrl_offline_cpu(unsigned int cpu)
 
 	d = get_mon_domain_from_cpu(cpu, l3);
 	if (d) {
-		if (is_mbm_enabled() && cpu == d->mbm_work_cpu) {
+		if (resctrl_is_mbm_enabled() && cpu == d->mbm_work_cpu) {
 			cancel_delayed_work(&d->mbm_over);
 			mbm_setup_overflow_handler(d, 0, cpu);
 		}
-		if (is_llc_occupancy_enabled() && cpu == d->cqm_work_cpu &&
-		    has_busy_rmid(d)) {
+		if (resctrl_arch_is_llc_occupancy_enabled() &&
+		    cpu == d->cqm_work_cpu && has_busy_rmid(d)) {
 			cancel_delayed_work(&d->cqm_limbo);
 			cqm_setup_limbo_handler(d, 0, cpu);
 		}
-- 
2.39.2


  parent reply	other threads:[~2025-02-07 18:19 UTC|newest]

Thread overview: 135+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-07 18:17 [PATCH v6 00/42] x86/resctrl: Move the resctrl filesystem code to /fs/resctrl James Morse
2025-02-07 18:17 ` [PATCH v6 01/42] x86/resctrl: Fix allocation of cleanest CLOSID on platforms with no monitors James Morse
2025-02-07 18:17 ` [PATCH v6 02/42] x86/resctrl: Add a helper to avoid reaching into the arch code resource list James Morse
2025-02-27 20:24   ` Moger, Babu
2025-02-28 19:53     ` James Morse
2025-02-07 18:17 ` [PATCH v6 03/42] x86/resctrl: Remove fflags from struct rdt_resource James Morse
2025-02-19 21:48   ` Reinette Chatre
2025-02-07 18:17 ` [PATCH v6 04/42] x86/resctrl: Use schema type to determine how to parse schema values James Morse
2025-02-19 21:52   ` Reinette Chatre
2025-02-28 19:50     ` James Morse
2025-02-07 18:17 ` [PATCH v6 05/42] x86/resctrl: Use schema type to determine the schema format string James Morse
2025-02-07 18:17 ` [PATCH v6 06/42] x86/resctrl: Remove data_width and the tabular format James Morse
2025-02-19 21:56   ` Reinette Chatre
2025-02-07 18:17 ` [PATCH v6 07/42] x86/resctrl: Add max_bw to struct resctrl_membw James Morse
2025-02-19 22:14   ` Reinette Chatre
2025-02-07 18:17 ` [PATCH v6 08/42] x86/resctrl: Generate default_ctrl instead of sharing it James Morse
2025-02-19 22:54   ` Reinette Chatre
2025-02-28 19:55     ` James Morse
2025-02-07 18:17 ` [PATCH v6 09/42] x86/resctrl: Add helper for setting CPU default properties James Morse
2025-02-19 23:09   ` Reinette Chatre
2025-02-07 18:17 ` [PATCH v6 10/42] x86/resctrl: Remove rdtgroup from update_cpu_closid_rmid() James Morse
2025-02-19 23:13   ` Reinette Chatre
2025-02-27 20:25   ` Moger, Babu
2025-02-28 19:54     ` James Morse
2025-02-07 18:17 ` [PATCH v6 11/42] x86/resctrl: Expose resctrl fs's init function to the rest of the kernel James Morse
2025-02-19 23:15   ` Reinette Chatre
2025-02-07 18:17 ` [PATCH v6 12/42] x86/resctrl: Move rdt_find_domain() to be visible to arch and fs code James Morse
2025-02-19 23:24   ` Reinette Chatre
2025-02-20 10:58     ` Catalin Marinas
2025-02-20 16:01       ` Reinette Chatre
2025-02-27 22:44         ` Fenghua Yu
2025-02-28 19:56         ` James Morse
2025-02-07 18:17 ` [PATCH v6 13/42] x86/resctrl: Move resctrl types to a separate header James Morse
2025-02-19 23:29   ` Reinette Chatre
2025-02-28 19:51     ` James Morse
2025-02-07 18:17 ` [PATCH v6 14/42] x86/resctrl: Add an arch helper to reset one resource James Morse
2025-02-19 23:32   ` Reinette Chatre
2025-02-07 18:17 ` [PATCH v6 15/42] x86/resctrl: Move monitor exit work to a resctrl exit call James Morse
2025-02-19 23:38   ` Reinette Chatre
2025-02-07 18:17 ` [PATCH v6 16/42] x86/resctrl: Move monitor init work to a resctrl init call James Morse
2025-02-19 23:43   ` Reinette Chatre
2025-02-07 18:17 ` [PATCH v6 17/42] x86/resctrl: Rewrite and move the for_each_*_rdt_resource() walkers James Morse
2025-02-19 23:47   ` Reinette Chatre
2025-02-07 18:17 ` James Morse [this message]
2025-02-19 23:55   ` [PATCH v6 18/42] x86/resctrl: Move the is_mbm_*_enabled() helpers to asm/resctrl.h Reinette Chatre
2025-02-28 19:55     ` James Morse
2025-02-07 18:18 ` [PATCH v6 19/42] x86/resctrl: Add resctrl_arch_is_evt_configurable() to abstract BMEC James Morse
2025-02-20  0:13   ` Reinette Chatre
2025-02-28 19:56     ` James Morse
2025-02-07 18:18 ` [PATCH v6 20/42] x86/resctrl: Change mon_event_config_{read,write}() to be arch helpers James Morse
2025-02-20  0:37   ` Reinette Chatre
2025-02-27 20:26   ` Moger, Babu
2025-02-28 19:54     ` James Morse
2025-02-07 18:18 ` [PATCH v6 21/42] x86/resctrl: Move mba_mbps_default_event init to filesystem code James Morse
2025-02-20  0:42   ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 22/42] x86/resctrl: Move mbm_cfg_mask to struct rdt_resource James Morse
2025-02-20  0:45   ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 23/42] x86/resctrl: Add resctrl_arch_ prefix to pseudo lock functions James Morse
2025-02-20  0:53   ` Reinette Chatre
2025-02-28 19:57     ` James Morse
2025-02-07 18:18 ` [PATCH v6 24/42] x86/resctrl: Allow an architecture to disable pseudo lock James Morse
2025-02-20  0:56   ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 25/42] x86/resctrl: Make prefetch_disable_bits belong to the arch code James Morse
2025-02-20  0:59   ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 26/42] x86/resctrl: Make resctrl_arch_pseudo_lock_fn() take a plr James Morse
2025-02-20  1:03   ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 27/42] x86/resctrl: Move RFTYPE flags to be managed by resctrl James Morse
2025-02-20  1:17   ` Reinette Chatre
2025-02-28 19:56     ` James Morse
2025-02-07 18:18 ` [PATCH v6 28/42] x86/resctrl: Handle throttle_mode for SMBA resources James Morse
2025-02-20  1:20   ` Reinette Chatre
2025-02-28 19:55     ` James Morse
2025-02-07 18:18 ` [PATCH v6 29/42] x86/resctrl: Move get_config_index() to a header James Morse
2025-02-20  1:27   ` Reinette Chatre
2025-02-28 19:51     ` James Morse
2025-03-01  2:28       ` Reinette Chatre
2025-03-06 19:28         ` James Morse
2025-03-06 22:52           ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 30/42] x86/resctrl: Claim get_{mon,ctrl}_domain_from_cpu() helpers for resctrl James Morse
2025-02-20  4:08   ` Reinette Chatre
2025-02-27 23:05     ` Fenghua Yu
2025-02-28 19:53     ` James Morse
2025-02-07 18:18 ` [PATCH v6 31/42] x86/resctrl: Remove the limit on the number of CLOSID James Morse
2025-02-20  4:21   ` Reinette Chatre
2025-02-28 19:53     ` James Morse
2025-02-07 18:18 ` [PATCH v6 32/42] x86/resctrl: Rename resctrl_sched_in() to begin with "resctrl_arch_" James Morse
2025-02-20  4:26   ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 33/42] x86/resctrl: resctrl_exit() teardown resctrl but leave the mount point James Morse
2025-02-20  4:42   ` Reinette Chatre
2025-02-28 19:54     ` James Morse
2025-03-01  2:35       ` Reinette Chatre
2025-03-06 19:28         ` James Morse
2025-03-07  4:47           ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 34/42] x86/resctrl: Drop __init/__exit on assorted symbols James Morse
2025-02-20  4:46   ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 35/42] x86/resctrl: Move is_mba_sc() out of core.c James Morse
2025-02-20  4:48   ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 36/42] x86/resctrl: Add end-marker to the resctrl_event_id enum James Morse
2025-02-20  4:50   ` Reinette Chatre
2025-02-27 20:26   ` Moger, Babu
2025-02-28 19:55     ` James Morse
2025-02-28 20:59       ` Luck, Tony
2025-02-07 18:18 ` [PATCH v6 37/42] x86/restrl: Expand the width of dom_id by replacing mon_data_bits James Morse
2025-02-20  5:40   ` Reinette Chatre
2025-02-28 19:53     ` James Morse
2025-02-07 18:18 ` [PATCH v6 38/42] x86/resctrl: Remove a newline to avoid confusing the code move script James Morse
2025-02-20  5:42   ` Reinette Chatre
2025-02-07 18:18 ` [PATCH v6 39/42] x86/resctrl: Split trace.h James Morse
2025-02-20  5:45   ` Reinette Chatre
2025-02-25  4:36     ` Fenghua Yu
2025-02-28 19:53       ` James Morse
2025-02-27 23:16   ` Fenghua Yu
2025-02-28 19:53     ` James Morse
2025-02-07 18:18 ` [PATCH v6 40/42] fs/resctrl: Add boiler plate for external resctrl code James Morse
2025-02-20  5:54   ` Reinette Chatre
2025-02-28 19:54     ` James Morse
2025-02-07 18:18 ` [PATCH v6 41/42] x86/resctrl: Move the filesystem bits to headers visible to fs/resctrl James Morse
2025-02-20  6:00   ` Reinette Chatre
2025-02-28 19:57     ` James Morse
2025-02-07 18:18 ` [PATCH v6 42/42] x86/resctrl: Add python script to move resctrl code to /fs/resctrl James Morse
2025-02-20  6:10   ` Reinette Chatre
2025-02-25 16:16     ` Reinette Chatre
2025-02-28 19:57       ` James Morse
2025-02-25  5:02   ` Fenghua Yu
2025-02-28 19:57     ` James Morse
2025-02-28 20:06     ` Moger, Babu
2025-02-10 17:24 ` [PATCH v6 00/42] x86/resctrl: Move the resctrl filesystem " Reinette Chatre
2025-02-11 14:36   ` Peter Newman
2025-02-11 18:37     ` James Morse
2025-02-12 15:24     ` Moger, Babu
2025-02-11 18:37   ` James Morse
2025-02-11 19:29     ` Reinette Chatre
2025-02-12 16:04       ` Dave Martin
2025-02-28  1:15 ` Shaopeng Tan (Fujitsu)
2025-02-28 19:55   ` 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=20250207181823.6378-19-james.morse@arm.com \
    --to=james.morse@arm.com \
    --cc=Babu.Moger@amd.com \
    --cc=amitsinght@marvell.com \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=bobo.shaobowang@huawei.com \
    --cc=bp@alien8.de \
    --cc=carl@os.amperecomputing.com \
    --cc=dave.martin@arm.com \
    --cc=david@redhat.com \
    --cc=dfustini@baylibre.com \
    --cc=hpa@zytor.com \
    --cc=kobak@nvidia.com \
    --cc=lcherian@marvell.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=peternewman@google.com \
    --cc=quic_jiles@quicinc.com \
    --cc=reinette.chatre@intel.com \
    --cc=rex.nie@jaguarmicro.com \
    --cc=scott@os.amperecomputing.com \
    --cc=sdonthineni@nvidia.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=tan.shaopeng@fujitsu.com \
    --cc=tan.shaopeng@jp.fujitsu.com \
    --cc=tglx@linutronix.de \
    --cc=tony.luck@intel.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 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®