aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tools/testing/selftests/resctrl/resctrl_tests.c
diff options
context:
space:
mode:
authorBabu Moger <babu.moger@amd.com>2020-01-16 13:32:43 -0800
committerShuah Khan <skhan@linuxfoundation.org>2020-02-10 18:43:17 -0700
commit53f74fbec9f069241aa6f4c4d908229c77ee83e2 (patch)
tree441424a750794e87f90a958a15876c6ef9e5acaa /tools/testing/selftests/resctrl/resctrl_tests.c
parentselftests/resctrl: Add Cache Allocation Technology (CAT) selftest (diff)
downloadwireguard-linux-53f74fbec9f069241aa6f4c4d908229c77ee83e2.tar.xz
wireguard-linux-53f74fbec9f069241aa6f4c4d908229c77ee83e2.zip
selftests/resctrl: Add vendor detection mechanism
RESCTRL feature is supported both on Intel and AMD now. Some features are implemented differently. Add vendor detection mechanism. Use the vendor check where there are differences. Signed-off-by: Babu Moger <babu.moger@amd.com> Co-developed-by: Fenghua Yu <fenghua.yu@intel.com> Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Diffstat (limited to 'tools/testing/selftests/resctrl/resctrl_tests.c')
-rw-r--r--tools/testing/selftests/resctrl/resctrl_tests.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/tools/testing/selftests/resctrl/resctrl_tests.c b/tools/testing/selftests/resctrl/resctrl_tests.c
index 7f75b0b01bb5..884e918b1e97 100644
--- a/tools/testing/selftests/resctrl/resctrl_tests.c
+++ b/tools/testing/selftests/resctrl/resctrl_tests.c
@@ -13,6 +13,27 @@
#define BENCHMARK_ARGS 64
#define BENCHMARK_ARG_SIZE 64
+bool is_amd;
+
+void detect_amd(void)
+{
+ FILE *inf = fopen("/proc/cpuinfo", "r");
+ char *res;
+
+ if (!inf)
+ return;
+
+ res = fgrep(inf, "vendor_id");
+
+ if (res) {
+ char *s = strchr(res, ':');
+
+ is_amd = s && !strcmp(s, ": AuthenticAMD\n");
+ free(res);
+ }
+ fclose(inf);
+}
+
static void cmd_help(void)
{
printf("usage: resctrl_tests [-h] [-b \"benchmark_cmd [options]\"] [-t test list] [-n no_of_bits]\n");
@@ -107,6 +128,9 @@ int main(int argc, char **argv)
if (geteuid() != 0)
printf("# WARNING: not running as root, tests may fail.\n");
+ /* Detect AMD vendor */
+ detect_amd();
+
if (has_ben) {
/* Extract benchmark command from command line. */
for (i = ben_ind; i < argc; i++) {