Re: [External] [PATCH RFC v2 06/17] RISC-V: QoS: define CBQRI resctrl resources and domains
From: yunhui cui
Date: Tue Mar 24 2026 - 22:35:47 EST
Hi Drew,
On Thu, Jan 29, 2026 at 4:28 AM Drew Fustini <fustini@xxxxxxxxxx> wrote:
>
> Define data structures to encapsulate the resctrl resource
> and domain structures.
>
> Co-developed-by: Adrien Ricciardi <aricciardi@xxxxxxxxxxxx>
> Signed-off-by: Adrien Ricciardi <aricciardi@xxxxxxxxxxxx>
> [fustini: rebased current upstream]
> Signed-off-by: Drew Fustini <fustini@xxxxxxxxxx>
> ---
> arch/riscv/kernel/qos/internal.h | 27 +++++++++++++++++++++++++++
> 1 file changed, 27 insertions(+)
>
> diff --git a/arch/riscv/kernel/qos/internal.h b/arch/riscv/kernel/qos/internal.h
> index ff2c7eff50be..c0402dd06cfa 100644
> --- a/arch/riscv/kernel/qos/internal.h
> +++ b/arch/riscv/kernel/qos/internal.h
> @@ -65,6 +65,11 @@
> #define CBQRI_BC_ALLOC_CTL_OP_READ_LIMIT 2
> #define CBQRI_BC_ALLOC_CTL_STATUS_SUCCESS 1
>
> +int qos_resctrl_setup(void);
> +void qos_resctrl_exit(void);
> +int qos_resctrl_online_cpu(unsigned int cpu);
> +int qos_resctrl_offline_cpu(unsigned int cpu);
> +
> /* Capacity Controller hardware capabilities */
> struct riscv_cbqri_capacity_caps {
> u16 ncblks; /* number of capacity blocks */
> @@ -125,4 +130,26 @@ struct cbqri_controller {
> bool mon_capable;
> };
>
> +struct cbqri_resctrl_res {
> + struct rdt_resource resctrl_res;
> + struct cbqri_controller controller;
> + u32 max_rcid;
> + u32 max_mcid;
> +};
> +
> +struct cbqri_resctrl_dom {
> + struct rdt_domain_hdr resctrl_dom_hdr;
> + struct rdt_ctrl_domain resctrl_ctrl_dom;
> + struct rdt_mon_domain resctrl_mon_dom;
> + u64 cbm;
> + u64 rbwb;
> + u64 *ctrl_val;
> + struct cbqri_controller *hw_ctrl;
> +};
> +
Can we trim down some fields? For example:
struct cbqri_resctrl_res {
struct rdt_resource resctrl_res;
- struct cbqri_controller controller;
u32 max_rcid;
u32 max_mcid;
};
struct cbqri_resctrl_dom {
- struct rdt_domain_hdr resctrl_dom_hdr;
struct rdt_ctrl_domain resctrl_ctrl_dom;
struct rdt_mon_domain resctrl_mon_dom;
- u64 cbm;
- u64 rbwb;
u64 *ctrl_val;
struct cbqri_controller *hw_ctrl;
};
> +struct cbqri_config {
> + u64 cbm; /* capacity block mask */
> + u64 rbwb; /* reserved bandwidth blocks */
> +};
> +
> #endif /* _ASM_RISCV_QOS_INTERNAL_H */
>
> --
> 2.43.0
>
Thanks,
Yunhui