On Fri, 18 Dec 2020, Daniel Wagner wrote: > We don't need an extra variable to track the state if a bitmask is > available or not. Check directly if the mask is usable. > > Signed-off-by: Daniel Wagner <dwagner@xxxxxxx> > --- > src/cyclictest/cyclictest.c | 28 ++++------------------------ > 1 file changed, 4 insertions(+), 24 deletions(-) > > diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c > index a5ca764da254..0e6519125c2f 100644 > --- a/src/cyclictest/cyclictest.c > +++ b/src/cyclictest/cyclictest.c > @@ -893,7 +893,6 @@ static int interval = DEFAULT_INTERVAL; > static int distance = -1; > static struct bitmask *affinity_mask = NULL; > static int smp = 0; > -static int setaffinity = AFFINITY_UNSPECIFIED; > > static int clocksources[] = { > CLOCK_MONOTONIC, > @@ -1020,19 +1019,13 @@ static void process_options(int argc, char *argv[], int max_cpus) > break; > if (optarg) { > parse_cpumask(optarg, max_cpus, &affinity_mask); > - setaffinity = AFFINITY_SPECIFIED; > } else if (optind < argc && > (atoi(argv[optind]) || > argv[optind][0] == '0' || > argv[optind][0] == '!')) { > parse_cpumask(argv[optind], max_cpus, &affinity_mask); > - setaffinity = AFFINITY_SPECIFIED; > - } else { > - setaffinity = AFFINITY_USEALL; > } > > - if (setaffinity == AFFINITY_SPECIFIED && !affinity_mask) > - display_help(1); > if (verbose) > printf("Using %u cpus.\n", > numa_bitmask_weight(affinity_mask)); > @@ -1125,7 +1118,6 @@ static void process_options(int argc, char *argv[], int max_cpus) > case OPT_SMP: /* SMP testing */ > smp = 1; > num_threads = -1; /* update after parsing */ > - setaffinity = AFFINITY_USEALL; > break; > case 't': > case OPT_THREADS: > @@ -1194,23 +1186,16 @@ static void process_options(int argc, char *argv[], int max_cpus) > use_nanosleep = MODE_CLOCK_NANOSLEEP; > } > > - /* if smp wasn't requested, test for numa automatically */ > - if (!smp) { > - if (setaffinity == AFFINITY_UNSPECIFIED) > - setaffinity = AFFINITY_USEALL; > - } > - > if (option_affinity && smp) { > warn("-a ignored due to smp mode\n"); > if (affinity_mask) { > numa_bitmask_free(affinity_mask); > affinity_mask = NULL; > } > - setaffinity = AFFINITY_USEALL; > } > > if (smi) { > - if (setaffinity == AFFINITY_UNSPECIFIED) > + if (affinity_mask) > fatal("SMI counter relies on thread affinity\n"); > > if (!has_smi_counter()) > @@ -1756,7 +1741,7 @@ int main(int argc, char **argv) > printf("Max CPUs = %d\n", max_cpus); > > /* Restrict the main pid to the affinity specified by the user */ > - if (affinity_mask != NULL) { > + if (affinity_mask) { > int res; > > errno = 0; > @@ -1915,17 +1900,12 @@ int main(int argc, char **argv) > if (status != 0) > fatal("error from pthread_attr_init for thread %d: %s\n", i, strerror(status)); > > - switch (setaffinity) { > - case AFFINITY_UNSPECIFIED: cpu = -1; break; > - case AFFINITY_SPECIFIED: > + if (affinity_mask) { > cpu = cpu_for_thread_sp(i, max_cpus, affinity_mask); > if (verbose) > printf("Thread %d using cpu %d.\n", i, cpu); > - break; > - case AFFINITY_USEALL: > + } else { > cpu = cpu_for_thread_ua(i, max_cpus); > - break; > - default: cpu = -1; > } > > /* find the memory node associated with the cpu i */ > -- > 2.29.2 > > -Fixed spelling of "steering" Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>