All of lore.kernel.org
 help / color / mirror / Atom feed
From: Reinette Chatre <reinette.chatre@intel.com>
To: Babu Moger <babu.moger@amd.com>, <corbet@lwn.net>,
	<tony.luck@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>, <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: Re: [PATCH v7 06/10] fs/resctrl: Introduce interface to display "io_alloc" support
Date: Mon, 21 Jul 2025 16:36:49 -0700	[thread overview]
Message-ID: <ccff50fc-c802-4352-9859-107138f103c8@intel.com> (raw)
In-Reply-To: <4e275fadf59e36e38ac60406a19cdf67d640f7d2.1752167718.git.babu.moger@amd.com>

Hi Babu,

On 7/10/25 10:16 AM, Babu Moger wrote:
> "io_alloc" feature in resctrl allows direct insertion of data from I/O
> devices into the cache.
> 
> Introduce the 'io_alloc' resctrl file to indicate the support for the
> feature.
> 
> Signed-off-by: Babu Moger <babu.moger@amd.com>
> ---

...

> ---
>  Documentation/filesystems/resctrl.rst | 25 +++++++++++++++++
>  fs/resctrl/rdtgroup.c                 | 39 +++++++++++++++++++++++++++
>  2 files changed, 64 insertions(+)
> 
> diff --git a/Documentation/filesystems/resctrl.rst b/Documentation/filesystems/resctrl.rst
> index c3c412733632..354e6a00fa45 100644
> --- a/Documentation/filesystems/resctrl.rst
> +++ b/Documentation/filesystems/resctrl.rst
> @@ -143,6 +143,31 @@ related to allocation:
>  			"1":
>  			      Non-contiguous 1s value in CBM is supported.
>  
> +"io_alloc":
> +		"io_alloc" enables system software to configure the portion of
> +		the cache allocated for I/O traffic. File may only exist if the
> +		system supports this feature on some of its cache resources.
> +
> +			"disabled":
> +			      Portions of cache used for allocation of I/O traffic
> +			      cannot be configured.
> +			"enabled":
> +			      Portions of cache used for allocation of I/O traffic
> +			      can be configured using "io_alloc_cbm".
> +			"not supported":
> +			      Support not available on the system.

"Support not available on the system." -> "Support not available for this resource."?

> +
> +		The underlying implementation may reduce resources available to
> +		general (CPU) cache allocation. See architecture specific notes
> +		below. Depending on usage requirements the feature can be enabled
> +		or disabled:

"disabled:" -> "disabled."?

> +
> +		On AMD systems, the io_alloc feature is supported by the L3 Smart
> +		Data Cache Injection Allocation Enforcement (SDCIAE). The CLOSID for
> +		io_alloc is determined by the highest CLOSID supported by the resource.

"is determined by the" -> "is the"?

To make clear connection with previous paragraph you can append something like:
	When io_alloc is enabled on an AMD system the highest CLOSID is dedicated to
	io_alloc and no longer available for general (CPU) cache allocation.

> +		When CDP is enabled, io_alloc routes I/O traffic using the highest
> +		CLOSID allocated for the instruction cache (L3CODE).

To clear up what happens with L3DATA, what do you think of appending something like:
		, making this CLOSID no longer available for general (CPU) cache
		allocation for both the L3CODE and L3DATA resources.

> +
>  Memory bandwidth(MB) subdirectory contains the following files
>  with respect to allocation:
>  
> diff --git a/fs/resctrl/rdtgroup.c b/fs/resctrl/rdtgroup.c
> index a2eea85aecc8..d7c4417b4516 100644
> --- a/fs/resctrl/rdtgroup.c
> +++ b/fs/resctrl/rdtgroup.c
> @@ -1836,6 +1836,28 @@ static ssize_t mbm_local_bytes_config_write(struct kernfs_open_file *of,
>  	return ret ?: nbytes;
>  }
>  
> +static int resctrl_io_alloc_show(struct kernfs_open_file *of,

Please move to ctrlmondata.c


> +				 struct seq_file *seq, void *v)
> +{
> +	struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
> +	struct rdt_resource *r = s->res;
> +
> +	mutex_lock(&rdtgroup_mutex);
> +
> +	if (r->cache.io_alloc_capable) {
> +		if (resctrl_arch_get_io_alloc_enabled(r))
> +			seq_puts(seq, "enabled\n");
> +		else
> +			seq_puts(seq, "disabled\n");
> +	} else {
> +		seq_puts(seq, "not supported\n");
> +	}
> +
> +	mutex_unlock(&rdtgroup_mutex);
> +
> +	return 0;
> +}
> +
>  /* rdtgroup information files for one cache resource. */
>  static struct rftype res_common_files[] = {
>  	{
> @@ -1926,6 +1948,12 @@ static struct rftype res_common_files[] = {
>  		.kf_ops		= &rdtgroup_kf_single_ops,
>  		.seq_show	= rdt_thread_throttle_mode_show,
>  	},
> +	{
> +		.name		= "io_alloc",
> +		.mode		= 0444,
> +		.kf_ops		= &rdtgroup_kf_single_ops,
> +		.seq_show	= resctrl_io_alloc_show,
> +	},
>  	{
>  		.name		= "max_threshold_occupancy",
>  		.mode		= 0644,
> @@ -2095,6 +2123,15 @@ static void thread_throttle_mode_init(void)
>  				 RFTYPE_CTRL_INFO | RFTYPE_RES_MB);
>  }
>  
> +static void io_alloc_init(void)

This function's comment can benefit from a snippet that highlights that
even though this operates on hardcoded L3 resource it results in this file
being visible for *all* cache resources (eg. L2 cache also), whether they
support io_alloc or not.

> +{
> +	struct rdt_resource *r = resctrl_arch_get_resource(RDT_RESOURCE_L3);
> +
> +	if (r->cache.io_alloc_capable)
> +		resctrl_file_fflags_init("io_alloc", RFTYPE_CTRL_INFO |
> +					 RFTYPE_RES_CACHE);
> +}
> +
>  void resctrl_file_fflags_init(const char *config, unsigned long fflags)
>  {
>  	struct rftype *rft;
> @@ -4282,6 +4319,8 @@ int resctrl_init(void)
>  
>  	thread_throttle_mode_init();
>  
> +	io_alloc_init();
> +
>  	ret = resctrl_mon_resource_init();
>  	if (ret)
>  		return ret;

Reinette

  reply	other threads:[~2025-07-21 23:37 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 ` [PATCH v7 03/10] x86,fs/resctrl: Detect io_alloc feature Babu Moger
2025-07-21 23:29   ` 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 [this message]
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=ccff50fc-c802-4352-9859-107138f103c8@intel.com \
    --to=reinette.chatre@intel.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=babu.moger@amd.com \
    --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=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 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.