Skip to content

Commit cdbc0b6

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 4678f80 commit cdbc0b6

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;
@@ -1425,15 +1410,22 @@ void resctrl_arch_config_cntr(struct rdt_resource *r, struct rdt_l3_mon_domain *
14251410
bool resctrl_arch_mbm_cntr_assign_enabled(struct rdt_resource *r)
14261411
{
14271412
struct mpam_resctrl_res *res;
1428-
struct mpam_resctrl_mon *mon;
1413+
enum resctrl_event_id evt;
14291414

14301415
res = container_of(r, struct mpam_resctrl_res, resctrl_res);
14311416

1432-
mon = mpam_resctrl_mon_from_res(res);
1433-
if (!mon)
1434-
return false;
1417+
/* OCCUP shares the L3 class but has no MBWU assigned_counters. */
1418+
for (evt = QOS_L3_MBM_TOTAL_EVENT_ID; evt <= QOS_L3_MBM_LOCAL_EVENT_ID;
1419+
evt++) {
1420+
struct mpam_resctrl_mon *mon = &mpam_resctrl_counters[evt];
14351421

1436-
return mon->assigned_counters ? true : false;
1422+
if (!mon->assigned_counters)
1423+
continue;
1424+
if (mpam_resctrl_res_from_mon(mon) == res)
1425+
return true;
1426+
}
1427+
1428+
return false;
14371429
}
14381430

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

0 commit comments

Comments
 (0)