[External] [PATCH RFC v3 04/11] RISC-V: QoS: add CBQRI hardware interface

Drew Fustini fustini at kernel.org
Wed May 6 07:28:26 PDT 2026


On Tue, May 05, 2026 at 12:43:46PM +0800, yunhui cui wrote:
> Hi Drew,
> 
> On Wed, Apr 15, 2026 at 9:57 AM Drew Fustini <fustini at kernel.org> wrote:
> >
> > Add the CBQRI controller hardware interface layer.
> >
> > Define data structures representing CBQRI controller properties
> > (cbqri_controller) and hardware capabilities for capacity and bandwidth
> > controllers (riscv_cbqri_capacity_caps, riscv_cbqri_bandwidth_caps) in
> > include/linux/riscv_qos.h.
> >
> > Define MMIO register offsets, field masks, and internal wrapper structs
> > (cbqri_resctrl_res, cbqri_resctrl_dom, cbqri_config) in internal.h.
> >
> > Implement MMIO helpers for capacity block mask and bandwidth reservation,
> > alloc control operations for capacity and bandwidth controllers, and
> > probe functions to discover controller capabilities. A per-controller
> > spinlock serializes multi-step MMIO sequences.
> >
> > Co-developed-by: Adrien Ricciardi <aricciardi at baylibre.com>
> > Signed-off-by: Adrien Ricciardi <aricciardi at baylibre.com>
> > Signed-off-by: Drew Fustini <fustini at kernel.org>
> > ---
> >  MAINTAINERS                         |   1 +
> >  arch/riscv/kernel/qos/internal.h    |  81 +++++++
> >  arch/riscv/kernel/qos/qos_resctrl.c | 432 ++++++++++++++++++++++++++++++++++++
> >  include/linux/riscv_qos.h           |  76 +++++++
> >  4 files changed, 590 insertions(+)
> >
[..]
> > +/* Set capacity block mask (cc_block_mask) */
> > +static void cbqri_set_cbm(struct cbqri_controller *ctrl, u64 cbm)
> > +{
> > +       iowrite64(cbm, ctrl->base + CBQRI_CC_BLOCK_MASK_OFF);
> > +}
> 
>  CBQRI capacity limits appear to include both cc_block_mask and
> cc_cunits, but only cc_block_mask seems to be modeled here. How is
> cc_cunits expected to be handled?

There was no match for cc_units in the existing resctrl schema so I had
planned to wait until the initial support is reviewed and merged to
propose support for cc_units.

Thanks,
Drew



More information about the linux-riscv mailing list