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>,
fenghuay@nvidia.com, Babu Moger <babu.moger@amd.com>,
Shaopeng Tan <tan.shaopeng@jp.fujitsu.com>,
Tony Luck <tony.luck@intel.com>
Subject: [PATCH v12 19/25] x86/resctrl: Move pseudo lock prototypes to include/linux/resctrl.h
Date: Thu, 15 May 2025 16:58:49 +0000 [thread overview]
Message-ID: <20250515165855.31452-20-james.morse@arm.com> (raw)
In-Reply-To: <20250515165855.31452-1-james.morse@arm.com>
The resctrl pseudo-lock feature allows an architecture to allocate data
into particular cache portions, which are then treated as reserved to
avoid that data ever being evicted. Setting this up is deeply architecture
specific as it involves disabling prefetchers etc. It is not possible
to support this kind of feature on arm64. Risc-V is assumed to be the
same.
The prototypes for the architecture code were added to x86's asm/resctrl.h,
with other architectures able to provide stubs for their architecture. This
forces other architectures to provide identical stubs.
Move the prototypes and stubs to linux/resctrl.h, and switch between them
using the existing Kconfig symbol.
Signed-off-by: James Morse <james.morse@arm.com>
Tested-by: Babu Moger <babu.moger@amd.com>
Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com>
Tested-by: Tony Luck <tony.luck@intel.com>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Reviewed-by: Fenghua Yu <fenghuay@nvidia.com>
---
I'm assuming risc-v's hardware prefetcher controls are restricted to the
higehst privilege level, and that this isn't where linux runs.
Changes since v9:
* Typo fix in commit message.
Changse since v8:
* This patch is new.
---
arch/x86/include/asm/resctrl.h | 5 -----
include/linux/resctrl.h | 13 +++++++++++++
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/arch/x86/include/asm/resctrl.h b/arch/x86/include/asm/resctrl.h
index a2e20fe90a2c..ad497ab196d1 100644
--- a/arch/x86/include/asm/resctrl.h
+++ b/arch/x86/include/asm/resctrl.h
@@ -205,11 +205,6 @@ static inline void resctrl_arch_mon_ctx_free(struct rdt_resource *r,
enum resctrl_event_id evtid,
void *ctx) { }
-u64 resctrl_arch_get_prefetch_disable_bits(void);
-int resctrl_arch_pseudo_lock_fn(void *_plr);
-int resctrl_arch_measure_cycles_lat_fn(void *_plr);
-int resctrl_arch_measure_l2_residency(void *_plr);
-int resctrl_arch_measure_l3_residency(void *_plr);
void resctrl_cpu_detect(struct cpuinfo_x86 *c);
#else
diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h
index 5ef972cbf56b..9ba771f2ddea 100644
--- a/include/linux/resctrl.h
+++ b/include/linux/resctrl.h
@@ -534,4 +534,17 @@ extern unsigned int resctrl_rmid_realloc_limit;
int resctrl_init(void);
void resctrl_exit(void);
+#ifdef CONFIG_RESCTRL_FS_PSEUDO_LOCK
+u64 resctrl_arch_get_prefetch_disable_bits(void);
+int resctrl_arch_pseudo_lock_fn(void *_plr);
+int resctrl_arch_measure_cycles_lat_fn(void *_plr);
+int resctrl_arch_measure_l2_residency(void *_plr);
+int resctrl_arch_measure_l3_residency(void *_plr);
+#else
+static inline u64 resctrl_arch_get_prefetch_disable_bits(void) { return 0; }
+static inline int resctrl_arch_pseudo_lock_fn(void *_plr) { return 0; }
+static inline int resctrl_arch_measure_cycles_lat_fn(void *_plr) { return 0; }
+static inline int resctrl_arch_measure_l2_residency(void *_plr) { return 0; }
+static inline int resctrl_arch_measure_l3_residency(void *_plr) { return 0; }
+#endif /* CONFIG_RESCTRL_FS_PSEUDO_LOCK */
#endif /* _RESCTRL_H */
--
2.39.5
next prev parent reply other threads:[~2025-05-15 17:00 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-15 16:58 [PATCH v12 00/25] x86/resctrl: Move the resctrl filesystem code to /fs/resctrl James Morse
2025-05-15 16:58 ` [PATCH v12 01/25] cpumask: relax cpumask_any_but() James Morse
2025-05-17 10:03 ` [tip: x86/cache] cpumask: Relax cpumask_any_but() tip-bot2 for Yury Norov [NVIDIA]
2025-05-15 16:58 ` [PATCH v12 02/25] find: add find_first_andnot_bit() James Morse
2025-05-17 10:03 ` [tip: x86/cache] find: Add find_first_andnot_bit() tip-bot2 for Yury Norov [NVIDIA]
2025-05-15 16:58 ` [PATCH v12 03/25] cpumask: add cpumask_{first,next}_andnot() API James Morse
2025-05-17 10:03 ` [tip: x86/cache] cpumask: Add " tip-bot2 for Yury Norov [NVIDIA]
2025-05-15 16:58 ` [PATCH v12 04/25] x86/resctrl: Optimize cpumask_any_housekeeping() James Morse
2025-05-17 10:03 ` [tip: x86/cache] " tip-bot2 for Yury Norov [NVIDIA]
2025-05-15 16:58 ` [PATCH v12 05/25] x86/resctrl: Remove the limit on the number of CLOSID James Morse
2025-05-17 10:03 ` [tip: x86/cache] " tip-bot2 for Amit Singh Tomar
2025-05-15 16:58 ` [PATCH v12 06/25] x86/resctrl: Rename resctrl_sched_in() to begin with "resctrl_arch_" James Morse
2025-05-17 10:03 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 07/25] x86/resctrl: Check all domains are offline in resctrl_exit() James Morse
2025-05-17 10:03 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 08/25] x86/resctrl: resctrl_exit() teardown resctrl but leave the mount point James Morse
2025-05-17 10:03 ` [tip: x86/cache] x86/resctrl: Resctrl_exit() " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 09/25] x86/resctrl: Drop __init/__exit on assorted symbols James Morse
2025-05-17 10:03 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 10/25] x86/resctrl: Move is_mba_sc() out of core.c James Morse
2025-05-17 10:03 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 11/25] x86/resctrl: Add end-marker to the resctrl_event_id enum James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 12/25] x86/resctrl: Expand the width of domid by replacing mon_data_bits James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 13/25] x86/resctrl: Split trace.h James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 14/25] x86/resctrl: Add 'resctrl' to the title of the resctrl documentation James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 15/25] fs/resctrl: Add boiler plate for external resctrl code James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 16/25] x86/resctrl: Move the filesystem bits to headers visible to fs/resctrl James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 17/25] x86/resctrl: Move enum resctrl_event_id to resctrl.h James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 18/25] x86/resctrl: Fix types in resctrl_arch_mon_ctx_{alloc,free}() stubs James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` James Morse [this message]
2025-05-17 10:02 ` [tip: x86/cache] x86/resctrl: Move pseudo lock prototypes to include/linux/resctrl.h tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 20/25] x86/resctrl: Squelch whitespace anomalies in resctrl core code James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for Dave Martin
2025-05-15 16:58 ` [PATCH v12 21/25] x86/resctrl: Prefer alloc(sizeof(*foo)) idiom in rdt_init_fs_context() James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for Dave Martin
2025-05-15 16:58 ` [PATCH v12 22/25] x86/resctrl: Relax some asm #includes James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for Dave Martin
2025-05-15 16:58 ` [PATCH v12 23/25] x86/resctrl: Always initialise rid field in rdt_resources_all[] James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 24/25] x86,fs/resctrl: Move the resctrl filesystem code to live in /fs/resctrl James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 16:58 ` [PATCH v12 25/25] MAINTAINERS: Add reviewers for fs/resctrl James Morse
2025-05-17 10:02 ` [tip: x86/cache] " tip-bot2 for James Morse
2025-05-15 17:50 ` [PATCH v12 00/25] x86/resctrl: Move the resctrl filesystem code to /fs/resctrl Borislav Petkov
2025-05-15 18:00 ` Fenghua Yu
2025-05-15 18:06 ` Borislav Petkov
2025-05-15 18:11 ` Fenghua Yu
2025-05-15 18:04 ` Reinette Chatre
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=20250515165855.31452-20-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=fenghuay@nvidia.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;
as well as URLs for NNTP newsgroup(s).