Re: [External] [PATCH RFC v2 06/17] RISC-V: QoS: define CBQRI resctrl resources and domains
Drew Fustini <[email protected]>
| Newsgroups | dev.linux.lists.acpica-devel,org.infradead.lists.linux-riscv,org.kernel.vger.linux-acpi,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <acOFef6f9og1hft2@gen8> |
On Wed, Mar 25, 2026 at 10:31:39AM +0800, yunhui cui wrote: > Hi Drew, > > On Thu, Jan 29, 2026 at 4:28 AM Drew Fustini <[email protected]> wrote: > > > > Define data structures to encapsulate the resctrl resource > > and domain structures. > > > > Co-developed-by: Adrien Ricciardi <[email protected]> > > Signed-off-by: Adrien Ricciardi <[email protected]> > > [fustini: rebased current upstream] > > Signed-off-by: Drew Fustini <[email protected]> > > --- > > 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; > }; Can you explain why you don't think these are needed?? Thanks, Drew