Skip to content

Commit 4b0a71f

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 05a48f4 commit 4b0a71f

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) \
@@ -175,21 +175,6 @@ static void resctrl_reset_task_closids(void)
175175
read_unlock(&tasklist_lock);
176176
}
177177

178-
static struct mpam_resctrl_mon *mpam_resctrl_mon_from_res(struct mpam_resctrl_res *res)
179-
{
180-
struct mpam_resctrl_mon *mon;
181-
enum resctrl_event_id eventid;
182-
183-
if (!res->class)
184-
return NULL;
185-
186-
for_each_mpam_resctrl_mon(mon, eventid) {
187-
if (mon->class == res->class)
188-
return mon;
189-
}
190-
return NULL;
191-
}
192-
193178
static struct mpam_resctrl_res *mpam_resctrl_res_from_mon(struct mpam_resctrl_mon *mon)
194179
{
195180
struct mpam_resctrl_res *res;
@@ -1423,15 +1408,22 @@ void resctrl_arch_config_cntr(struct rdt_resource *r, struct rdt_l3_mon_domain *
14231408
bool resctrl_arch_mbm_cntr_assign_enabled(struct rdt_resource *r)
14241409
{
14251410
struct mpam_resctrl_res *res;
1426-
struct mpam_resctrl_mon *mon;
1411+
enum resctrl_event_id evt;
14271412

14281413
res = container_of(r, struct mpam_resctrl_res, resctrl_res);
14291414

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

1434-
return mon->assigned_counters ? true : false;
1420+
if (!mon->assigned_counters)
1421+
continue;
1422+
if (mpam_resctrl_res_from_mon(mon) == res)
1423+
return true;
1424+
}
1425+
1426+
return false;
14351427
}
14361428

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

0 commit comments

Comments
 (0)