Skip to content

Commit db419af

Browse files
committed
NVIDIA: SAUCE: Fix mbm_L3_assign and mon_local_bytes
Add local bytes counter in mpam_resctrl_counters[] to fix missing mbm_local_bytes monitoring on Grace. Add mon->assigned_counters check to enable mbm_L3_assignments config file on Grace. Signed-off-by: Fenghua Yu <fenghuay@nvidia.com>
1 parent 145e4b8 commit db419af

1 file changed

Lines changed: 13 additions & 21 deletions

File tree

drivers/resctrl/mpam_resctrl.c

Lines changed: 13 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ static struct mpam_resctrl_res mpam_resctrl_controls[RDT_NUM_RESOURCES];
4646
* to those supported by MPAM.
4747
* Class pointer may be NULL.
4848
*/
49-
#define MPAM_MAX_EVENT QOS_L3_MBM_TOTAL_EVENT_ID
49+
#define MPAM_MAX_EVENT QOS_L3_MBM_LOCAL_EVENT_ID
5050
static struct mpam_resctrl_mon mpam_resctrl_counters[MPAM_MAX_EVENT + 1];
5151

5252
#define for_each_mpam_resctrl_mon(mon, eventid) \
@@ -180,21 +180,6 @@ static void resctrl_reset_task_closids(void)
180180
read_unlock(&tasklist_lock);
181181
}
182182

183-
static struct mpam_resctrl_mon *mpam_resctrl_mon_from_res(struct mpam_resctrl_res *res)
184-
{
185-
struct mpam_resctrl_mon *mon;
186-
enum resctrl_event_id eventid;
187-
188-
if (!res->class)
189-
return NULL;
190-
191-
for_each_mpam_resctrl_mon(mon, eventid) {
192-
if (mon->class == res->class)
193-
return mon;
194-
}
195-
return NULL;
196-
}
197-
198183
static struct mpam_resctrl_res *mpam_resctrl_res_from_mon(struct mpam_resctrl_mon *mon)
199184
{
200185
struct mpam_resctrl_res *res;
@@ -1428,15 +1413,22 @@ void resctrl_arch_config_cntr(struct rdt_resource *r, struct rdt_l3_mon_domain *
14281413
bool resctrl_arch_mbm_cntr_assign_enabled(struct rdt_resource *r)
14291414
{
14301415
struct mpam_resctrl_res *res;
1431-
struct mpam_resctrl_mon *mon;
1416+
enum resctrl_event_id evt;
14321417

14331418
res = container_of(r, struct mpam_resctrl_res, resctrl_res);
14341419

1435-
mon = mpam_resctrl_mon_from_res(res);
1436-
if (!mon)
1437-
return false;
1420+
/* OCCUP shares the L3 class but has no MBWU assigned_counters. */
1421+
for (evt = QOS_L3_MBM_TOTAL_EVENT_ID; evt <= QOS_L3_MBM_LOCAL_EVENT_ID;
1422+
evt++) {
1423+
struct mpam_resctrl_mon *mon = &mpam_resctrl_counters[evt];
14381424

1439-
return mon->assigned_counters ? true : false;
1425+
if (!mon->assigned_counters)
1426+
continue;
1427+
if (mpam_resctrl_res_from_mon(mon) == res)
1428+
return true;
1429+
}
1430+
1431+
return false;
14401432
}
14411433

14421434
int resctrl_arch_mbm_cntr_assign_set(struct rdt_resource *r, bool enable)

0 commit comments

Comments
 (0)