From 3e04af4e9ebd403de8ed242b0fe6e6361cf618ea Mon Sep 17 00:00:00 2001 From: Wang ShaoBo Date: Fri, 26 Feb 2021 20:21:54 +0800 Subject: [PATCH] arm64/mpam: Add helper for getting mpam sysprops hulk inclusion category: feature feature: ARM MPAM support bugzilla: 48265 CVE: NA -------------------------------- Now mpam sysprops have been probed, maximum support of partid and pmg should be exported to resctrl. For MPAM, Processing elements (PEs) issue memory-system requests, PEs must implement the MPAMn_ELx registers and their behaviors to generate the PARTID and PMG fields of memory-system requests. For resctrl, partid and pmg should be used to combined into a unique rmid for labeling each group, and partid for determining the maximum number of ctrl groups. Signed-off-by: Wang ShaoBo Reviewed-by: Xiongfeng Wang Reviewed-by: Cheng Jian Signed-off-by: Yang Yingliang Signed-off-by: Zheng Zengkai --- arch/arm64/kernel/mpam/mpam_device.c | 12 ++++++++++++ arch/arm64/kernel/mpam/mpam_internal.h | 3 +++ 2 files changed, 15 insertions(+) diff --git a/arch/arm64/kernel/mpam/mpam_device.c b/arch/arm64/kernel/mpam/mpam_device.c index cfbc2b25c950..431318baa845 100644 --- a/arch/arm64/kernel/mpam/mpam_device.c +++ b/arch/arm64/kernel/mpam/mpam_device.c @@ -666,3 +666,15 @@ void __init mpam_discovery_failed(void) } mutex_unlock(&mpam_devices_lock); } + +u16 mpam_sysprops_num_partid(void) +{ + /* At least one partid for system width */ + return mpam_sysprops.max_partid + 1; +} + +u16 mpam_sysprops_num_pmg(void) +{ + /* At least one pmg for system width */ + return mpam_sysprops.max_pmg + 1; +} diff --git a/arch/arm64/kernel/mpam/mpam_internal.h b/arch/arm64/kernel/mpam/mpam_internal.h index 24b26dc0e3d0..2579d111d7df 100644 --- a/arch/arm64/kernel/mpam/mpam_internal.h +++ b/arch/arm64/kernel/mpam/mpam_internal.h @@ -48,4 +48,7 @@ static inline void mpam_clear_feature(enum mpam_device_features feat, #define MPAM_ARCHITECTURE_V1 0x10 +u16 mpam_sysprops_num_partid(void); +u16 mpam_sysprops_num_pmg(void); + #endif -- GitLab