[External] [PATCH RFC v2 06/17] RISC-V: QoS: define CBQRI resctrl resources and domains

yunhui cui cuiyunhui at bytedance.com
Tue Mar 24 19:31:39 PDT 2026


Hi Drew,

On Thu, Jan 29, 2026 at 4:28 AM Drew Fustini <fustini at kernel.org> wrote:
>
> Define data structures to encapsulate the resctrl resource
> and domain structures.
>
> Co-developed-by: Adrien Ricciardi <aricciardi at baylibre.com>
> Signed-off-by: Adrien Ricciardi <aricciardi at baylibre.com>
> [fustini: rebased current upstream]
> Signed-off-by: Drew Fustini <fustini at kernel.org>
> ---
>  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



More information about the linux-riscv mailing list