Revert "selftests/resctrl: Use resctrl/info for feature detection"

This reverts commit 19eaad1400 which is
ee0415681eb661efa1eb2db7acc263f2c7df1e23 upstream.

This commit is not a stable candidate and was backported without needed
dependencies that results in the resctrl tests unable to compile.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Reinette Chatre
2021-08-11 16:54:21 -07:00
committed by Greg Kroah-Hartman
parent d8c3859870
commit 0e70939037
2 changed files with 11 additions and 45 deletions

View File

@@ -28,10 +28,6 @@
#define RESCTRL_PATH "/sys/fs/resctrl" #define RESCTRL_PATH "/sys/fs/resctrl"
#define PHYS_ID_PATH "/sys/devices/system/cpu/cpu" #define PHYS_ID_PATH "/sys/devices/system/cpu/cpu"
#define CBM_MASK_PATH "/sys/fs/resctrl/info" #define CBM_MASK_PATH "/sys/fs/resctrl/info"
#define L3_PATH "/sys/fs/resctrl/info/L3"
#define MB_PATH "/sys/fs/resctrl/info/MB"
#define L3_MON_PATH "/sys/fs/resctrl/info/L3_MON"
#define L3_MON_FEATURES_PATH "/sys/fs/resctrl/info/L3_MON/mon_features"
#define PARENT_EXIT(err_msg) \ #define PARENT_EXIT(err_msg) \
do { \ do { \
@@ -83,7 +79,7 @@ int remount_resctrlfs(bool mum_resctrlfs);
int get_resource_id(int cpu_no, int *resource_id); int get_resource_id(int cpu_no, int *resource_id);
int umount_resctrlfs(void); int umount_resctrlfs(void);
int validate_bw_report_request(char *bw_report); int validate_bw_report_request(char *bw_report);
bool validate_resctrl_feature_request(const char *resctrl_val); bool validate_resctrl_feature_request(char *resctrl_val);
char *fgrep(FILE *inf, const char *str); char *fgrep(FILE *inf, const char *str);
int taskset_benchmark(pid_t bm_pid, int cpu_no); int taskset_benchmark(pid_t bm_pid, int cpu_no);
void run_benchmark(int signum, siginfo_t *info, void *ucontext); void run_benchmark(int signum, siginfo_t *info, void *ucontext);

View File

@@ -616,56 +616,26 @@ char *fgrep(FILE *inf, const char *str)
* validate_resctrl_feature_request - Check if requested feature is valid. * validate_resctrl_feature_request - Check if requested feature is valid.
* @resctrl_val: Requested feature * @resctrl_val: Requested feature
* *
* Return: True if the feature is supported, else false * Return: 0 on success, non-zero on failure
*/ */
bool validate_resctrl_feature_request(const char *resctrl_val) bool validate_resctrl_feature_request(char *resctrl_val)
{ {
struct stat statbuf; FILE *inf = fopen("/proc/cpuinfo", "r");
bool found = false; bool found = false;
char *res; char *res;
FILE *inf;
if (!resctrl_val) if (!inf)
return false; return false;
if (remount_resctrlfs(false)) res = fgrep(inf, "flags");
return false;
if (!strncmp(resctrl_val, CAT_STR, sizeof(CAT_STR))) { if (res) {
if (!stat(L3_PATH, &statbuf)) char *s = strchr(res, ':');
return true;
} else if (!strncmp(resctrl_val, MBA_STR, sizeof(MBA_STR))) {
if (!stat(MB_PATH, &statbuf))
return true;
} else if (!strncmp(resctrl_val, MBM_STR, sizeof(MBM_STR)) ||
!strncmp(resctrl_val, CMT_STR, sizeof(CMT_STR))) {
if (!stat(L3_MON_PATH, &statbuf)) {
inf = fopen(L3_MON_FEATURES_PATH, "r");
if (!inf)
return false;
if (!strncmp(resctrl_val, CMT_STR, sizeof(CMT_STR))) { found = s && !strstr(s, resctrl_val);
res = fgrep(inf, "llc_occupancy"); free(res);
if (res) {
found = true;
free(res);
}
}
if (!strncmp(resctrl_val, MBM_STR, sizeof(MBM_STR))) {
res = fgrep(inf, "mbm_total_bytes");
if (res) {
free(res);
res = fgrep(inf, "mbm_local_bytes");
if (res) {
found = true;
free(res);
}
}
}
fclose(inf);
}
} }
fclose(inf);
return found; return found;
} }