Commit 00de25ec authored by Wang ShaoBo's avatar Wang ShaoBo Committed by Zheng Zengkai
Browse files

arm64/mpam: Init resctrl resources' info from resctrl_res selected

hulk inclusion
category: feature
feature: ARM MPAM support
bugzilla: 48265
CVE: NA

--------------------------------

Initialize resctrl resources from exported resctrl_res which contains the
class distinguished by mpam type and level (just for Cache).

resctrl resource structure and initialization process need to be modified
for it doesn't distinguish between L2 and L3.

Part of code refers to James's, See links, others refer to Intel-RDT's
and with appropriate expands.

Link: http://www.linux-arm.org/git?p=linux-jm.git;a=patch;h=b6870246e25f8f6f9c7b275f0aaa50fc772094a6
Link: http://www.linux-arm.org/git?p=linux-jm.git;a=patch;h=676d9aee8c2b27a17dd9cbebe5c9ecdd63c6281f


Signed-off-by: default avatarWang ShaoBo <bobo.shaobowang@huawei.com>
Reviewed-by: default avatarXiongfeng Wang <wangxiongfeng2@huawei.com>
Reviewed-by: default avatarCheng Jian <cj.chengjian@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent faf9a4c3
Loading
Loading
Loading
Loading
+0 −9
Original line number Diff line number Diff line
@@ -212,15 +212,6 @@ extern struct resctrl_resource resctrl_resources_all[];

int __init resctrl_group_init(void);

enum {
	MPAM_RESOURCE_SMMU,
	MPAM_RESOURCE_CACHE,
	MPAM_RESOURCE_MC,

	/* Must be the last */
	MPAM_NUM_RESOURCES,
};

void rdt_last_cmd_clear(void);
void rdt_last_cmd_puts(const char *s);
void rdt_last_cmd_printf(const char *fmt, ...);
+1 −1
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ int resctrl_group_schemata_show(struct kernfs_open_file *of,

#define for_each_resctrl_resource(r)					\
	for (r = resctrl_resources_all;					\
	     r < resctrl_resources_all + MPAM_NUM_RESOURCES;		\
	     r < resctrl_resources_all + RDT_NUM_RESOURCES;		\
	     r++)							\

int mpam_get_mon_config(struct resctrl_resource *r);
+1 −1
Original line number Diff line number Diff line
@@ -534,7 +534,7 @@ int mkdir_mondata_all(struct kernfs_node *parent_kn,
		if (r->mon_enabled) {
			/* HHA does not support monitor by pmg */
			if ((prgrp->type == RDTMON_GROUP) &&
			    (r->rid == MPAM_RESOURCE_MC))
			    (r->rid == RDT_RESOURCE_MC))
				continue;

			ret = mkdir_mondata_subdir_alldom(kn, r, prgrp);
+6 −0
Original line number Diff line number Diff line
@@ -9,12 +9,15 @@ typedef u32 mpam_features_t;
struct mpam_component;
struct rdt_domain;
struct mpam_class;
struct raw_resctrl_resource;

extern bool rdt_alloc_capable;
extern bool rdt_mon_capable;

extern struct list_head mpam_classes;

#define MAX_MBA_BW  100u

struct mpam_resctrl_dom {
	struct mpam_component   *comp;

@@ -120,4 +123,7 @@ void mpam_class_list_lock_held(void);

int mpam_resctrl_setup(void);

struct raw_resctrl_resource *
mpam_get_raw_resctrl_resource(u32 level);

#endif
+1 −1
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ void pmg_init(void)
{
	/* use L3's num_pmg as system num_pmg */
	struct raw_resctrl_resource *rr =
		resctrl_resources_all[MPAM_RESOURCE_CACHE].res;
		resctrl_resources_all[RDT_RESOURCE_L3].res;
	int num_pmg = rr->num_pmg;

	mon_init();
Loading