Hi, Drew
Add interface for CBQRI controller drivers to make use of the resctrl
filesystem.
Co-developed-by: Adrien Ricciardi <redacted>
Signed-off-by: Adrien Ricciardi <redacted>
Signed-off-by: Drew Fustini <fustini@kernel.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