mirror of
https://github.com/torvalds/linux.git
synced 2024-12-06 19:11:31 +00:00
selftests/resctrl: Add resource_info_file_exists()
Feature checking done by resctrl_mon_feature_exists() covers features represented by the feature name presence inside the 'mon_features' file in /sys/fs/resctrl/info/L3_MON directory. There exists a different way to represent feature support and that is by the presence of 0 or 1 in a single file in the info/resource directory. In this case the filename represents what feature support is being indicated. Add a generic function to check file presence in the /sys/fs/resctrl/info/<RESOURCE> directory. Signed-off-by: Maciej Wieczor-Retman <maciej.wieczor-retman@intel.com> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
This commit is contained in:
parent
0061641648
commit
74e76cbabd
@ -138,6 +138,7 @@ int umount_resctrlfs(void);
|
||||
int validate_bw_report_request(char *bw_report);
|
||||
bool resctrl_resource_exists(const char *resource);
|
||||
bool resctrl_mon_feature_exists(const char *resource, const char *feature);
|
||||
bool resource_info_file_exists(const char *resource, const char *file);
|
||||
bool test_resource_feature_check(const struct resctrl_test *test);
|
||||
char *fgrep(FILE *inf, const char *str);
|
||||
int taskset_benchmark(pid_t bm_pid, int cpu_no, cpu_set_t *old_affinity);
|
||||
|
@ -764,6 +764,31 @@ bool resctrl_mon_feature_exists(const char *resource, const char *feature)
|
||||
return !!res;
|
||||
}
|
||||
|
||||
/*
|
||||
* resource_info_file_exists - Check if a file is present inside
|
||||
* /sys/fs/resctrl/info/@resource.
|
||||
* @resource: Required resource (Eg: MB, L3, L2, etc.)
|
||||
* @file: Required file.
|
||||
*
|
||||
* Return: True if the /sys/fs/resctrl/info/@resource/@file exists, else false.
|
||||
*/
|
||||
bool resource_info_file_exists(const char *resource, const char *file)
|
||||
{
|
||||
char res_path[PATH_MAX];
|
||||
struct stat statbuf;
|
||||
|
||||
if (!file || !resource)
|
||||
return false;
|
||||
|
||||
snprintf(res_path, sizeof(res_path), "%s/%s/%s", INFO_PATH, resource,
|
||||
file);
|
||||
|
||||
if (stat(res_path, &statbuf))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool test_resource_feature_check(const struct resctrl_test *test)
|
||||
{
|
||||
return resctrl_resource_exists(test->resource);
|
||||
|
Loading…
Reference in New Issue
Block a user