[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <202602090729.6197TrBX088760@mse-fl2.zte.com.cn>
Date: Mon, 9 Feb 2026 15:20:00 +0800
From: Gong Shuai <gong.shuai@...echips.com.cn>
To: fustini@...nel.org
Cc: gong.shuai@...echips.com.cn, Dave.Martin@....com,
acpica-devel@...ts.linux.dev, alex@...ti.fr, aou@...s.berkeley.edu,
aricciardi@...libre.com, atish.patra@...ux.dev, atishp@...osinc.com,
babu.moger@....com, ben.horgan@....com, conor+dt@...nel.org,
cp0613@...ux.alibaba.com, cuiyunhui@...edance.com,
devicetree@...r.kernel.org, fenghua.yu@...el.com,
guo.wenjia23@....com.cn, james.morse@....com, krzk+dt@...nel.org,
lenb@...nel.org, linux-acpi@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-riscv@...ts.infradead.org,
liu.qingtao2@....com.cn, liwei1518@...il.com, mindal@...ihalf.com,
npitre@...libre.com, palmer@...belt.com, paul.walmsley@...ive.com,
peternewman@...gle.com, pjw@...nel.org, rafael@...nel.org,
reinette.chatre@...el.com, rkrcmar@...tanamicro.com,
robert.moore@...el.com, robh@...nel.org, samuel.holland@...ive.com,
sunilvl@...tanamicro.com, tony.luck@...el.com, vasu@...osinc.com,
ved@...osinc.com, x86@...nel.org, zhiwei_liu@...ux.alibaba.com
Subject: Re: [PATCH RFC v2 08/17] RISC-V: QoS: add resctrl interface for CBQRI controllers
Hi, Drew
> Add interface for CBQRI controller drivers to make use of the resctrl
> filesystem.
>
> Co-developed-by: Adrien Ricciardi <aricciardi@...libre.com>
> Signed-off-by: Adrien Ricciardi <aricciardi@...libre.com>
> Signed-off-by: Drew Fustini <fustini@...nel.org>
> ---
>
> ...
>
> +u32 resctrl_arch_get_config(struct rdt_resource *r, struct rdt_ctrl_domain *d,
> + u32 closid, enum resctrl_conf_type type)
> +{
> + struct cbqri_resctrl_dom *hw_dom;
> + struct cbqri_controller *ctrl;
> + int reg_offset;
> + u32 percent;
> + u32 rbwb;
> + u64 reg;
> + int err;
> +
> + hw_dom = container_of(d, struct cbqri_resctrl_dom, resctrl_ctrl_dom);
> +
> + ctrl = hw_dom->hw_ctrl;
> +
> + if (!r->alloc_capable)
> + return resctrl_get_default_ctrl(r);
> +
> + switch (r->rid) {
> + case RDT_RESOURCE_L2:
> + case RDT_RESOURCE_L3:
> + /* Clear cc_block_mask before read limit operation */
> + cbqri_set_cbm(ctrl, 0);
> +
> + /* Capacity read limit operation for RCID (closid) */
> + err = cbqri_cc_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, type, closid);
It looks like the parameter order might be incorrect. I believe it should be:
cbqri_cc_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, closid, type)
Could you please double-check?
> + if (err < 0) {
> + pr_err("%s(): operation failed: err = %d", __func__, err);
> + return resctrl_get_default_ctrl(r);
> + }
> ...
Thanks,
Shuai
Hi, Drew<br /><br />> Add interface for CBQRI controller drivers to make use of the resctrl<br />> filesystem.<br />> <br />> Co-developed-by: Adrien Ricciardi <aricciardi@...libre.com><br />> Signed-off-by: Adrien Ricciardi <aricciardi@...libre.com><br />> Signed-off-by: Drew Fustini <fustini@...nel.org><br />> ---<br />><br />> ...<br />><br />> +u32 resctrl_arch_get_config(struct rdt_resource *r, struct rdt_ctrl_domain *d,<br />> + u32 closid, enum resctrl_conf_type type)<br />> +{<br />> + struct cbqri_resctrl_dom *hw_dom;<br />> + struct cbqri_controller *ctrl;<br />> + int reg_offset;<br />> + u32 percent;<br />> + u32 rbwb;<br />> + u64 reg;<br />> + int err;<br />> +<br />> + hw_dom = container_of(d, struct cbqri_resctrl_dom, resctrl_ctrl_dom);<br />> +<br />> + ctrl = hw_dom->hw_ctrl;<br />> +<br />> + if (!r->alloc_capable)<br />> + return resctrl_get_default_ctrl(r);<br />> +<br />> + switch (r->rid) {<br />> + case RDT_RESOURCE_L2:<br />> + case RDT_RESOURCE_L3:<br />> + /* Clear cc_block_mask before read limit operation */<br />> + cbqri_set_cbm(ctrl, 0);<br />> +<br />> + /* Capacity read limit operation for RCID (closid) */<br />> + err = cbqri_cc_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, type, closid);<br /><br />It looks like the parameter order might be incorrect. I believe it should be:<br />cbqri_cc_alloc_op(ctrl, CBQRI_CC_ALLOC_CTL_OP_READ_LIMIT, closid, type)<br /><br />Could you please double-check?<br /><br />> + if (err < 0) {<br />> + pr_err("%s(): operation failed: err = %d", __func__, err);<br />> + return resctrl_get_default_ctrl(r);<br />> + }<br />> ...<br /><br />Thanks,<br />Shuai
Powered by blists - more mailing lists