public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Reinette Chatre <reinette.chatre@intel.com>
To: Drew Fustini <fustini@kernel.org>
Cc: "Paul Walmsley" <pjw@kernel.org>,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Albert Ou" <aou@eecs.berkeley.edu>,
	"Alexandre Ghiti" <alex@ghiti.fr>,
	"Radim Krčmář" <rkrcmar@ventanamicro.com>,
	"Samuel Holland" <samuel.holland@sifive.com>,
	"Adrien Ricciardi" <aricciardi@baylibre.com>,
	"Nicolas Pitre" <npitre@baylibre.com>,
	"Kornel Dulęba" <mindal@semihalf.com>,
	"Atish Patra" <atish.patra@linux.dev>,
	"Atish Kumar Patra" <atishp@rivosinc.com>,
	"Vasudevan Srinivasan" <vasu@rivosinc.com>,
	"Ved Shanbhogue" <ved@rivosinc.com>,
	"Conor Dooley" <conor.dooley@microchip.com>,
	"yunhui cui" <cuiyunhui@bytedance.com>,
	"Chen Pei" <cp0613@linux.alibaba.com>,
	"Liu Zhiwei" <zhiwei_liu@linux.alibaba.com>,
	"Weiwei Li" <liwei1518@gmail.com>,
	guo.wenjia23@zte.com.cn,
	"Gong Shuai" <gong.shuai@sanechips.com.cn>,
	"Gong Shuai" <gsh517@gmail.com>,
	liu.qingtao2@zte.com.cn, "Tony Luck" <tony.luck@intel.com>,
	"Babu Moger" <babu.moger@amd.com>,
	"Peter Newman" <peternewman@google.com>,
	"Fenghua Yu" <fenghua.yu@intel.com>,
	"James Morse" <james.morse@arm.com>,
	"Ben Horgan" <ben.horgan@arm.com>,
	"Dave Martin" <Dave.Martin@arm.com>,
	"Rob Herring" <robh@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	"Len Brown" <lenb@kernel.org>,
	"Robert Moore" <robert.moore@intel.com>,
	"Sunil V L" <sunilvl@ventanamicro.com>,
	linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
	x86@kernel.org, linux-acpi@vger.kernel.org,
	acpica-devel@lists.linux.dev, devicetree@vger.kernel.org,
	"Paul Walmsley" <paul.walmsley@sifive.com>
Subject: Re: [PATCH RFC v3 05/11] RISC-V: QoS: add resctrl arch callbacks for CBQRI controllers
Date: Thu, 30 Apr 2026 16:52:05 -0700	[thread overview]
Message-ID: <3b6f86ef-c00b-4d7d-96e2-b57fd4231e0d@intel.com> (raw)
In-Reply-To: <afPnrjAseS00a8k9@x1>

Hi Drew,

On 4/30/26 4:37 PM, Drew Fustini wrote:
> On Thu, Apr 30, 2026 at 04:17:22PM -0700, Reinette Chatre wrote:
>> Hi Drew,
>>
>> On 4/14/26 6:53 PM, Drew Fustini wrote:
>>
>>> +int resctrl_arch_update_one(struct rdt_resource *r, struct rdt_ctrl_domain *d,
>>> +			    u32 closid, enum resctrl_conf_type t, u32 cfg_val)
>>> +{
>>> +	struct cbqri_controller *ctrl;
>>> +	struct cbqri_resctrl_dom *dom;
>>> +	struct cbqri_config cfg;
>>> +	int err = 0;
>>> +
>>> +	dom = container_of(d, struct cbqri_resctrl_dom, resctrl_ctrl_dom);
>>> +	ctrl = dom->hw_ctrl;
>>> +
>>> +	if (!r->alloc_capable)
>>> +		return -EINVAL;
>>> +
>>> +	switch (r->rid) {
>>> +	case RDT_RESOURCE_L2:
>>> +	case RDT_RESOURCE_L3:
>>> +		cfg.cbm = cfg_val;
>>> +		err = cbqri_apply_cache_config(dom, closid, t, &cfg);
>>> +		break;
>>> +	case RDT_RESOURCE_MBA:
>>> +		/* convert from percentage to bandwidth blocks */
>>> +		cfg.rbwb = cfg_val * ctrl->bc.nbwblks / 100;
>>> +		cfg.rbwb = min_t(u64, cfg.rbwb, ctrl->bc.mrbwb);
>>> +		err = cbqri_apply_bw_config(dom, closid, t, &cfg);
>>
>> (Earlier comment wondered about whether rbwb cannot just be provided
>> directly to cbqri_apply_bw_config().)
>>
>> Apart from that it looks like this can benefit from "emulated controls"
>> that we mused about at https://lore.kernel.org/lkml/e788ca62-ec63-4552-978b-9569f369afd5@intel.com/
>>
>> At this time this MBA resource is constrained by the 1% steps that the
>> default MB control supports and clearly it is emulated with a control that
>> can support finer granularities. I am currently working on a PoC of the
>> base schema descriptions on which the support for emulated controls can
>> be built that should be able to expose full hardware capability.
>>
>> Reinette
> 
> Thank you for your review. I have been working on a large overhaul to
> the series in v4 and was about to send it. I finally realized the
> sematic mismatch between resctl MB resource and what the RISC-V CBQRI
> spec offers. I decided to create MB_MIN for reserved bandwidth and
> MB_WGHT (weight) for shared bandwidth porpotional weight.
> 
> I didn't expect adding two new resources to be the best solution but I
> wanted to offer something tangible to move the discussion forward. I
> look forward to your proof of concept as I expect I can then build
> proper support CBQRI bandwidth allocation (reservation and proportional
> share) on top of that.

Creating multiple resources to support discussion seems reasonable.
Part of what my PoC introduces is that a single resource can have multiple
controls. This sounds relevant here. 
My initial PoC ended up giving the architecture too much control over
the user interface in deciding how these controls are presented to the user.
Things like this have been ok so far with the architectures behaving well (for
example, all architectures making sure to name their cache resources
"L2" and "L3" to have these appear identical to user space), but resctrl fs
can make this simpler. This does mean that resctrl fs would need to be "taught"
about new controls like "WGHT"/weight. I am reworking the series as we speak
so that we can use it to discuss more.

Reinette




  reply	other threads:[~2026-04-30 23:52 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-15  1:53 [PATCH RFC v3 00/11] RISC-V: QoS: add CBQRI resctrl interface Drew Fustini
2026-04-15  1:53 ` [PATCH RFC v3 01/11] dt-bindings: riscv: Add Ssqosid extension description Drew Fustini
2026-04-15  1:53 ` [PATCH RFC v3 02/11] RISC-V: Detect the Ssqosid extension Drew Fustini
2026-04-15  1:53 ` [PATCH RFC v3 03/11] RISC-V: Add support for srmcfg CSR from " Drew Fustini
2026-04-15  1:53 ` [PATCH RFC v3 04/11] RISC-V: QoS: add CBQRI hardware interface Drew Fustini
2026-04-30 23:15   ` Reinette Chatre
2026-05-01  4:45     ` Drew Fustini
2026-04-15  1:53 ` [PATCH RFC v3 05/11] RISC-V: QoS: add resctrl arch callbacks for CBQRI controllers Drew Fustini
2026-04-30 23:17   ` Reinette Chatre
2026-04-30 23:37     ` Drew Fustini
2026-04-30 23:52       ` Reinette Chatre [this message]
2026-04-15  1:54 ` [PATCH RFC v3 06/11] RISC-V: QoS: add resctrl setup and domain management Drew Fustini
2026-04-17 10:52   ` guo.wenjia23
2026-04-18 22:01     ` Drew Fustini
2026-04-30 23:20   ` Reinette Chatre
2026-05-01 22:56     ` Drew Fustini
2026-04-15  1:54 ` [PATCH RFC v3 07/11] RISC-V: QoS: enable resctrl support for Ssqosid Drew Fustini
2026-04-15  1:54 ` [PATCH RFC v3 08/11] ACPI: PPTT: Add acpi_pptt_get_cache_size_from_id helper Drew Fustini
2026-04-30 23:20   ` Reinette Chatre
2026-05-01 16:53     ` Drew Fustini
2026-04-15  1:54 ` [PATCH RFC v3 09/11] DO NOT MERGE: include: acpi: actbl2: Add structs for RQSC table Drew Fustini
2026-04-15  1:54 ` [PATCH RFC v3 10/11] ACPI: RISC-V: Parse RISC-V Quality of Service Controller (RQSC) table Drew Fustini
2026-04-15  1:54 ` [PATCH RFC v3 11/11] ACPI: RISC-V: Add support for RISC-V Quality of Service Controller (RQSC) Drew Fustini

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=3b6f86ef-c00b-4d7d-96e2-b57fd4231e0d@intel.com \
    --to=reinette.chatre@intel.com \
    --cc=Dave.Martin@arm.com \
    --cc=acpica-devel@lists.linux.dev \
    --cc=alex@ghiti.fr \
    --cc=aou@eecs.berkeley.edu \
    --cc=aricciardi@baylibre.com \
    --cc=atish.patra@linux.dev \
    --cc=atishp@rivosinc.com \
    --cc=babu.moger@amd.com \
    --cc=ben.horgan@arm.com \
    --cc=conor+dt@kernel.org \
    --cc=conor.dooley@microchip.com \
    --cc=cp0613@linux.alibaba.com \
    --cc=cuiyunhui@bytedance.com \
    --cc=devicetree@vger.kernel.org \
    --cc=fenghua.yu@intel.com \
    --cc=fustini@kernel.org \
    --cc=gong.shuai@sanechips.com.cn \
    --cc=gsh517@gmail.com \
    --cc=guo.wenjia23@zte.com.cn \
    --cc=james.morse@arm.com \
    --cc=krzk+dt@kernel.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=liu.qingtao2@zte.com.cn \
    --cc=liwei1518@gmail.com \
    --cc=mindal@semihalf.com \
    --cc=npitre@baylibre.com \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=peternewman@google.com \
    --cc=pjw@kernel.org \
    --cc=rafael@kernel.org \
    --cc=rkrcmar@ventanamicro.com \
    --cc=robert.moore@intel.com \
    --cc=robh@kernel.org \
    --cc=samuel.holland@sifive.com \
    --cc=sunilvl@ventanamicro.com \
    --cc=tony.luck@intel.com \
    --cc=vasu@rivosinc.com \
    --cc=ved@rivosinc.com \
    --cc=x86@kernel.org \
    --cc=zhiwei_liu@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