selftests/resctrl: Add helper to convert L2/3 to integer
authorIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Fri, 15 Dec 2023 15:05:13 +0000 (17:05 +0200)
committerShuah Khan <skhan@linuxfoundation.org>
Tue, 13 Feb 2024 20:56:45 +0000 (13:56 -0700)
"L2"/"L3" conversion to integer is embedded into get_cache_size()
which prevents reuse.

Create a helper for the cache string to integer conversion to make
it reusable.

Signed-off-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>
tools/testing/selftests/resctrl/resctrlfs.c

index fed6741edc5f7a0d7db85c5b87e516cd4eaf7f88..eab928c46f9813fe000a8328e247f46612709ffb 100644 (file)
@@ -94,6 +94,23 @@ int umount_resctrlfs(void)
        return 0;
 }
 
+/*
+ * get_cache_level - Convert cache level from string to integer
+ * @cache_type:                Cache level as string
+ *
+ * Return: cache level as integer or -1 if @cache_type is invalid.
+ */
+static int get_cache_level(const char *cache_type)
+{
+       if (!strcmp(cache_type, "L3"))
+               return 3;
+       if (!strcmp(cache_type, "L2"))
+               return 2;
+
+       ksft_print_msg("Invalid cache level\n");
+       return -1;
+}
+
 /*
  * get_resource_id - Get socket number/l3 id for a specified CPU
  * @cpu_no:    CPU number
@@ -144,14 +161,9 @@ int get_cache_size(int cpu_no, const char *cache_type, unsigned long *cache_size
        int length, i, cache_num;
        FILE *fp;
 
-       if (!strcmp(cache_type, "L3")) {
-               cache_num = 3;
-       } else if (!strcmp(cache_type, "L2")) {
-               cache_num = 2;
-       } else {
-               ksft_print_msg("Invalid cache level\n");
-               return -1;
-       }
+       cache_num = get_cache_level(cache_type);
+       if (cache_num < 0)
+               return cache_num;
 
        sprintf(cache_path, "/sys/bus/cpu/devices/cpu%d/cache/index%d/size",
                cpu_no, cache_num);