tools/power/x86/intel-speed-select: Avoid duplicate names for json parsing
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Fri, 31 Jan 2020 05:45:18 +0000 (21:45 -0800)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 10 Feb 2020 15:47:38 +0000 (17:47 +0200)
For the command
"intel-speed-select perf-profile info":

There are two instances of “speed-select-turbo-freq” underneath
“perf-profile-level-0” for each package. When we load the output into
python with json.load(), the second instance overwrites the first.

Result is that we can only access:
"speed-select-turbo-freq": {
            "bucket-0": {
              "high-priority-cores-count": "2",
              "high-priority-max-frequency(MHz)": "3000",
              "high-priority-max-avx2-frequency(MHz)": "2800",
              "high-priority-max-avx512-frequency(MHz)": "2600"
            },
Because it is a duplicate of "speed-select-turbo-freq": "disabled"
Same is true for "speed-select-base-freq".

To avoid this add "-properties" suffix for the second instance to
differentiate.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
tools/power/x86/intel-speed-select/isst-display.c

index 4fb0c1d..3d70be2 100644 (file)
@@ -178,7 +178,7 @@ static void _isst_pbf_display_information(int cpu, FILE *outf, int level,
        char header[256];
        char value[256];
 
-       snprintf(header, sizeof(header), "speed-select-base-freq");
+       snprintf(header, sizeof(header), "speed-select-base-freq-properties");
        format_and_print(outf, disp_level, header, NULL);
 
        snprintf(header, sizeof(header), "high-priority-base-frequency(MHz)");
@@ -224,7 +224,7 @@ static void _isst_fact_display_information(int cpu, FILE *outf, int level,
        char value[256];
        int j;
 
-       snprintf(header, sizeof(header), "speed-select-turbo-freq");
+       snprintf(header, sizeof(header), "speed-select-turbo-freq-properties");
        format_and_print(outf, base_level, header, NULL);
        for (j = 0; j < ISST_FACT_MAX_BUCKETS; ++j) {
                if (fact_bucket != 0xff && fact_bucket != j)