tools/power/x86/intel-speed-select: Error on CPU count exceed in request
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tue, 8 Aug 2023 20:08:03 +0000 (13:08 -0700)
committerSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tue, 8 Aug 2023 22:16:40 +0000 (15:16 -0700)
There is a limit on number of CPUs in one request. This is set to 256.
Currently tool silently ignores request for count over 256. Give an
error message to indicate this.

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

index f70a710..b4864f3 100644 (file)
@@ -2622,10 +2622,11 @@ static struct process_cmd_struct isst_cmds[] = {
  */
 void parse_cpu_command(char *optarg)
 {
-       unsigned int start, end;
+       unsigned int start, end, invalid_count;
        char *next;
 
        next = optarg;
+       invalid_count = 0;
 
        while (next && *next) {
                if (*next == '-') /* no negative cpu numbers */
@@ -2635,6 +2636,8 @@ void parse_cpu_command(char *optarg)
 
                if (max_target_cpus < MAX_CPUS_IN_ONE_REQ)
                        target_cpus[max_target_cpus++] = start;
+               else
+                       invalid_count = 1;
 
                if (*next == '\0')
                        break;
@@ -2661,6 +2664,8 @@ void parse_cpu_command(char *optarg)
                while (++start <= end) {
                        if (max_target_cpus < MAX_CPUS_IN_ONE_REQ)
                                target_cpus[max_target_cpus++] = start;
+                       else
+                               invalid_count = 1;
                }
 
                if (*next == ',')
@@ -2669,6 +2674,13 @@ void parse_cpu_command(char *optarg)
                        goto error;
        }
 
+       if (invalid_count) {
+               isst_ctdp_display_information_start(outf);
+               isst_display_error_info_message(1, "Too many CPUs in one request: max is", 1, MAX_CPUS_IN_ONE_REQ - 1);
+               isst_ctdp_display_information_end(outf);
+               exit(-1);
+       }
+
 #ifdef DEBUG
        {
                int i;