From: Babu Moger <babu.moger@amd.com>
To: <corbet@lwn.net>, <tony.luck@intel.com>,
<reinette.chatre@intel.com>, <Dave.Martin@arm.com>,
<james.morse@arm.com>, <tglx@linutronix.de>, <mingo@redhat.com>,
<bp@alien8.de>, <dave.hansen@linux.intel.com>
Cc: <x86@kernel.org>, <hpa@zytor.com>, <akpm@linux-foundation.org>,
<paulmck@kernel.org>, <rostedt@goodmis.org>,
<Neeraj.Upadhyay@amd.com>, <david@redhat.com>, <arnd@arndb.de>,
<fvdl@google.com>, <seanjc@google.com>, <thomas.lendacky@amd.com>,
<pawan.kumar.gupta@linux.intel.com>, <babu.moger@amd.com>,
<yosry.ahmed@linux.dev>, <sohil.mehta@intel.com>, <xin@zytor.com>,
<kai.huang@intel.com>, <xiaoyao.li@intel.com>,
<peterz@infradead.org>, <me@mixaill.net>,
<mario.limonciello@amd.com>, <xin3.li@intel.com>,
<ebiggers@google.com>, <ak@linux.intel.com>,
<chang.seok.bae@intel.com>, <andrew.cooper3@citrix.com>,
<perry.yuan@amd.com>, <linux-doc@vger.kernel.org>,
<linux-kernel@vger.kernel.org>
Subject: [PATCH v7 03/10] x86,fs/resctrl: Detect io_alloc feature
Date: Thu, 10 Jul 2025 12:16:17 -0500 [thread overview]
Message-ID: <998f42d5c92cce9d7d83bcd54d25761242839b4a.1752167718.git.babu.moger@amd.com> (raw)
In-Reply-To: <cover.1752167718.git.babu.moger@amd.com>
Smart Data Cache Injection (SDCI) is a mechanism that enables direct
insertion of data from I/O devices into the L3 cache. It can reduce the
demands on DRAM bandwidth and reduces latency to the processor consuming
the I/O data.
Introduce cache resource property "io_alloc_capable" that an architecture
can set if a portion of the cache can be allocated for I/O traffic.
Set this property on x86 systems that support SDCIAE (L3 Smart Data Cache
Injection Allocation Enforcement). This property is set only for the L3
cache resource on systems that support SDCIAE.
Signed-off-by: Babu Moger <babu.moger@amd.com>
---
v7: Few text updates in changelog and resctrl.h.
v6: No changes.
v5: No changes.
v4: Updated the commit message and code comment based on feedback.
v3: Rewrote commit log. Changed the text to bit generic than the AMD specific.
Renamed the rdt_get_sdciae_alloc_cfg() to rdt_set_io_alloc_capable().
Removed leftover comment from v2.
v2: Changed sdciae_capable to io_alloc_capable to make it generic feature.
Also moved the io_alloc_capable in struct resctrl_cache.
---
arch/x86/kernel/cpu/resctrl/core.c | 7 +++++++
include/linux/resctrl.h | 3 +++
2 files changed, 10 insertions(+)
diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
index f6d84882cc4e..1d1002526745 100644
--- a/arch/x86/kernel/cpu/resctrl/core.c
+++ b/arch/x86/kernel/cpu/resctrl/core.c
@@ -274,6 +274,11 @@ static void rdt_get_cdp_config(int level)
rdt_resources_all[level].r_resctrl.cdp_capable = true;
}
+static void rdt_set_io_alloc_capable(struct rdt_resource *r)
+{
+ r->cache.io_alloc_capable = true;
+}
+
static void rdt_get_cdp_l3_config(void)
{
rdt_get_cdp_config(RDT_RESOURCE_L3);
@@ -842,6 +847,8 @@ static __init bool get_rdt_alloc_resources(void)
rdt_get_cache_alloc_cfg(1, r);
if (rdt_cpu_has(X86_FEATURE_CDP_L3))
rdt_get_cdp_l3_config();
+ if (rdt_cpu_has(X86_FEATURE_SDCIAE))
+ rdt_set_io_alloc_capable(r);
ret = true;
}
if (rdt_cpu_has(X86_FEATURE_CAT_L2)) {
diff --git a/include/linux/resctrl.h b/include/linux/resctrl.h
index 6fb4894b8cfd..010f238843b2 100644
--- a/include/linux/resctrl.h
+++ b/include/linux/resctrl.h
@@ -191,6 +191,8 @@ struct rdt_mon_domain {
* @arch_has_sparse_bitmasks: True if a bitmask like f00f is valid.
* @arch_has_per_cpu_cfg: True if QOS_CFG register for this cache
* level has CPU scope.
+ * @io_alloc_capable: True if portion of the cache can be configured
+ * for I/O traffic.
*/
struct resctrl_cache {
unsigned int cbm_len;
@@ -198,6 +200,7 @@ struct resctrl_cache {
unsigned int shareable_bits;
bool arch_has_sparse_bitmasks;
bool arch_has_per_cpu_cfg;
+ bool io_alloc_capable;
};
/**
--
2.34.1
next prev parent reply other threads:[~2025-07-10 17:17 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-10 17:16 [PATCH v7 00/10] x86,fs/resctrl: Support L3 Smart Data Cache Injection Allocation Enforcement (SDCIAE) Babu Moger
2025-07-10 17:16 ` [PATCH v7 01/10] x86/cpufeatures: Add support for L3 Smart Data Cache Injection Allocation Enforcement Babu Moger
2025-07-10 23:26 ` Borislav Petkov
2025-07-21 23:28 ` Reinette Chatre
2025-07-10 17:16 ` [PATCH v7 02/10] x86/resctrl: Add SDCIAE feature in the command line options Babu Moger
2025-07-21 23:29 ` Reinette Chatre
2025-07-31 16:28 ` Moger, Babu
2025-07-10 17:16 ` Babu Moger [this message]
2025-07-21 23:29 ` [PATCH v7 03/10] x86,fs/resctrl: Detect io_alloc feature Reinette Chatre
2025-07-10 17:16 ` [PATCH v7 04/10] x86,fs/resctrl: Implement "io_alloc" enable/disable handlers Babu Moger
2025-07-21 23:32 ` Reinette Chatre
2025-07-31 17:40 ` Moger, Babu
2025-07-10 17:16 ` [PATCH v7 05/10] fs/resctrl: Update bit_usage to reflect io_alloc Babu Moger
2025-07-21 23:35 ` Reinette Chatre
2025-08-04 21:20 ` Moger, Babu
2025-07-10 17:16 ` [PATCH v7 06/10] fs/resctrl: Introduce interface to display "io_alloc" support Babu Moger
2025-07-21 23:36 ` Reinette Chatre
2025-07-31 18:51 ` Moger, Babu
2025-07-10 17:16 ` [PATCH v7 07/10] fs/resctrl: Add user interface to enable/disable io_alloc feature Babu Moger
2025-07-21 23:40 ` Reinette Chatre
2025-07-31 22:52 ` Moger, Babu
2025-08-04 16:07 ` Reinette Chatre
2025-08-04 17:14 ` Moger, Babu
2025-07-10 17:16 ` [PATCH v7 08/10] fs/resctrl: Introduce interface to display io_alloc CBMs Babu Moger
2025-07-21 23:42 ` Reinette Chatre
2025-08-04 18:14 ` Moger, Babu
2025-07-10 17:16 ` [PATCH v7 09/10] fs/resctrl: Modify rdt_parse_data to pass mode and CLOSID Babu Moger
2025-07-22 3:30 ` Reinette Chatre
2025-08-04 19:32 ` Moger, Babu
2025-07-10 17:16 ` [PATCH v7 10/10] fs/resctrl: Introduce interface to modify io_alloc Capacity Bit Masks Babu Moger
2025-07-22 3:32 ` Reinette Chatre
2025-08-04 21:01 ` Moger, Babu
2025-07-21 23:28 ` [PATCH v7 00/10] x86,fs/resctrl: Support L3 Smart Data Cache Injection Allocation Enforcement (SDCIAE) Reinette Chatre
2025-08-04 21:34 ` 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=998f42d5c92cce9d7d83bcd54d25761242839b4a.1752167718.git.babu.moger@amd.com \
--to=babu.moger@amd.com \
--cc=Dave.Martin@arm.com \
--cc=Neeraj.Upadhyay@amd.com \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=andrew.cooper3@citrix.com \
--cc=arnd@arndb.de \
--cc=bp@alien8.de \
--cc=chang.seok.bae@intel.com \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=david@redhat.com \
--cc=ebiggers@google.com \
--cc=fvdl@google.com \
--cc=hpa@zytor.com \
--cc=james.morse@arm.com \
--cc=kai.huang@intel.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mario.limonciello@amd.com \
--cc=me@mixaill.net \
--cc=mingo@redhat.com \
--cc=paulmck@kernel.org \
--cc=pawan.kumar.gupta@linux.intel.com \
--cc=perry.yuan@amd.com \
--cc=peterz@infradead.org \
--cc=reinette.chatre@intel.com \
--cc=rostedt@goodmis.org \
--cc=seanjc@google.com \
--cc=sohil.mehta@intel.com \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--cc=xiaoyao.li@intel.com \
--cc=xin3.li@intel.com \
--cc=xin@zytor.com \
--cc=yosry.ahmed@linux.dev \
/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).