public inbox for kvm@vger.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>, <kas@kernel.org>,
	<rick.p.edgecombe@intel.com>, <akpm@linux-foundation.org>,
	<paulmck@kernel.org>, <pmladek@suse.com>,
	<pawan.kumar.gupta@linux.intel.com>, <rostedt@goodmis.org>,
	<kees@kernel.org>, <arnd@arndb.de>, <fvdl@google.com>,
	<seanjc@google.com>, <thomas.lendacky@amd.com>,
	<manali.shukla@amd.com>, <perry.yuan@amd.com>,
	<sohil.mehta@intel.com>, <xin@zytor.com>, <peterz@infradead.org>,
	<mario.limonciello@amd.com>, <gautham.shenoy@amd.com>,
	<nikunj@amd.com>, <dapeng1.mi@linux.intel.com>,
	<ak@linux.intel.com>, <chang.seok.bae@intel.com>,
	<ebiggers@google.com>, <linux-doc@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-coco@lists.linux.dev>,
	<kvm@vger.kernel.org>
Subject: Re: [PATCH v9 07/10] fs/resctrl: Introduce interface to display io_alloc CBMs
Date: Wed, 17 Sep 2025 22:43:14 -0700	[thread overview]
Message-ID: <2c3a8282-e876-4cdb-8355-0fd78eb6c0b4@intel.com> (raw)
In-Reply-To: <382926e0decbe8d64df56c857fdf10feef6fcc51.1756851697.git.babu.moger@amd.com>

Hi Babu,

On 9/2/25 3:41 PM, Babu Moger wrote:
> The io_alloc feature in resctrl enables system software to configure
> the portion of the cache allocated for I/O traffic.

(repetitive)

> 
> Add "io_alloc_cbm" resctrl file to display the Capacity Bit Masks (CBMs)
> that represent the portion of each cache instance allocated for I/O
> traffic.
> 
> The CBM interface file io_alloc_cbm resides in the info directory (e.g.,
> /sys/fs/resctrl/info/L3/). Since the resource name is part of the path, it
> is not necessary to display the resource name as done in the schemata file.
> Pass the resource name to show_doms() and print it only if the name is
> valid. For io_alloc, pass NULL pointer to suppress printing the resource
> name.

Related to changelog feedback received during ABMC series I think the portion
that describes the code  (from "Pass the resource name ..." to "printing the
resource name"), is unnecessary since it can be seen by looking at the patch.

> 
> When CDP is enabled, io_alloc routes traffic using the highest CLOSID
> associated with the L3CODE resource. To ensure consistent cache allocation
> behavior, the L3CODE and L3DATA resources are kept in sync. So, the

I do not think the "To ensure consistent cache allocation behavior" is accurate.
This is just to avoid the possible user space confusion if supporting the feature
with L3CODE used for I/O allocation and L3DATA becomes unusable, no?

Also, this also needs to be in imperative tone.

> Capacity Bit Masks (CBMs) accessed through either L3CODE or L3DATA will
> reflect identical values.

Attempt to put it together, please feel free to improve:

	Introduce the "io_alloc_cbm" resctrl file to display the Capacity Bit
	Masks (CBMs) that represent the portions of each cache instance allocated
	for I/O traffic on a cache resource that supports the "io_alloc" feature.         

	io_alloc_cbm resides in the info directory of a cache resource, for example,
	/sys/fs/resctrl/info/L3/. Since the resource name is part of the path, it
	is not necessary to display the resource name as done in the schemata file.

	When CDP is enabled, io_alloc routes traffic using the highest CLOSID
	associated with the L3CODE resource and that CLOSID becomes unusable for
	the L3DATA resource. The highest CLOSID of L3CODE and L3DATA resources will
	be kept	in sync	to ensure consistent user interface. In preparation for this,
	access the CBMs for I/O traffic through highest CLOSID of either L3CODE or
	L3DATA resource.

> 
> Signed-off-by: Babu Moger <babu.moger@amd.com>
> ---

..

> @@ -807,3 +809,40 @@ ssize_t resctrl_io_alloc_write(struct kernfs_open_file *of, char *buf,
>  
>  	return ret ?: nbytes;
>  }
> +
> +int resctrl_io_alloc_cbm_show(struct kernfs_open_file *of, struct seq_file *seq, void *v)
> +{
> +	struct resctrl_schema *s = rdt_kn_parent_priv(of->kn);
> +	struct rdt_resource *r = s->res;
> +	int ret = 0;
> +
> +	cpus_read_lock();
> +	mutex_lock(&rdtgroup_mutex);
> +
> +	rdt_last_cmd_clear();
> +
> +	if (!r->cache.io_alloc_capable) {
> +		rdt_last_cmd_printf("io_alloc is not supported on %s\n", s->name);
> +		ret = -ENODEV;
> +		goto out_unlock;
> +	}
> +
> +	if (!resctrl_arch_get_io_alloc_enabled(r)) {
> +		rdt_last_cmd_printf("io_alloc is not enabled on %s\n", s->name);
> +		ret = -EINVAL;

The return code when io_alloc is not enabled is different between reading from (EINVAL) and
writing to (ENODEV) io_alloc_cbm. Please be consistent.

> +		goto out_unlock;
> +	}
> +
> +	/*
> +	 * When CDP is enabled, resctrl_io_alloc_init_cbm() sets the same CBM for
> +	 * both L3CODE and L3DATA of the highest CLOSID. As a result, the io_alloc

Not just during initialization, they are kept in sync during runtime also (when
user writes to io_alloc_cbm). First sentence can perhaps just be
	"When CDP is enabled the CBMs of the highest CLOSID of L3CODE
	 and L3DATA are kept in sync. As a result, ..."

Reinette

  reply	other threads:[~2025-09-18  5:43 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-02 22:41 [PATCH v9 00/10] x86,fs/resctrl: Support L3 Smart Data Cache Injection Allocation Enforcement (SDCIAE) Babu Moger
2025-09-02 22:41 ` [PATCH v9 01/10] x86/cpufeatures: Add support for L3 Smart Data Cache Injection Allocation Enforcement Babu Moger
2025-09-18  5:08   ` Reinette Chatre
2025-09-19 15:45     ` Moger, Babu
2025-09-02 22:41 ` [PATCH v9 02/10] x86/resctrl: Add SDCIAE feature in the command line options Babu Moger
2025-09-18  5:09   ` Reinette Chatre
2025-09-19 16:40     ` Moger, Babu
2025-09-02 22:41 ` [PATCH v9 03/10] x86,fs/resctrl: Detect io_alloc feature Babu Moger
2025-09-18  5:15   ` Reinette Chatre
2025-09-19 16:53     ` Moger, Babu
2025-09-02 22:41 ` [PATCH v9 04/10] x86,fs/resctrl: Implement "io_alloc" enable/disable handlers Babu Moger
2025-09-18  5:19   ` Reinette Chatre
2025-09-19 17:18     ` Moger, Babu
2025-09-02 22:41 ` [PATCH v9 05/10] fs/resctrl: Introduce interface to display "io_alloc" support Babu Moger
2025-09-18  5:28   ` Reinette Chatre
2025-09-19 17:49     ` Moger, Babu
2025-09-02 22:41 ` [PATCH v9 06/10] fs/resctrl: Add user interface to enable/disable io_alloc feature Babu Moger
2025-09-18  5:37   ` Reinette Chatre
2025-09-19 19:09     ` Moger, Babu
2025-09-02 22:41 ` [PATCH v9 07/10] fs/resctrl: Introduce interface to display io_alloc CBMs Babu Moger
2025-09-18  5:43   ` Reinette Chatre [this message]
2025-09-19 19:38     ` Moger, Babu
2025-09-02 22:41 ` [PATCH v9 08/10] fs/resctrl: Modify rdt_parse_data to pass mode and CLOSID Babu Moger
2025-09-18  5:44   ` Reinette Chatre
2025-09-19 19:49     ` Moger, Babu
2025-09-02 22:41 ` [PATCH v9 09/10] fs/resctrl: Introduce interface to modify io_alloc Capacity Bit Masks Babu Moger
2025-09-18  6:03   ` Reinette Chatre
2025-09-19 20:49     ` Moger, Babu
2025-09-22 22:48       ` Reinette Chatre
2025-09-25 18:54         ` Moger, Babu
2025-09-02 22:41 ` [PATCH v9 10/10] fs/resctrl: Update bit_usage to reflect io_alloc Babu Moger
2025-09-18  6:08   ` Reinette Chatre
2025-09-19 21:05     ` 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=2c3a8282-e876-4cdb-8355-0fd78eb6c0b4@intel.com \
    --to=reinette.chatre@intel.com \
    --cc=Dave.Martin@arm.com \
    --cc=ak@linux.intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=babu.moger@amd.com \
    --cc=bp@alien8.de \
    --cc=chang.seok.bae@intel.com \
    --cc=corbet@lwn.net \
    --cc=dapeng1.mi@linux.intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=ebiggers@google.com \
    --cc=fvdl@google.com \
    --cc=gautham.shenoy@amd.com \
    --cc=hpa@zytor.com \
    --cc=james.morse@arm.com \
    --cc=kas@kernel.org \
    --cc=kees@kernel.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=manali.shukla@amd.com \
    --cc=mario.limonciello@amd.com \
    --cc=mingo@redhat.com \
    --cc=nikunj@amd.com \
    --cc=paulmck@kernel.org \
    --cc=pawan.kumar.gupta@linux.intel.com \
    --cc=perry.yuan@amd.com \
    --cc=peterz@infradead.org \
    --cc=pmladek@suse.com \
    --cc=rick.p.edgecombe@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=xin@zytor.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