@@ -885,14 +885,13 @@ static int timermode = TIMER_ABSTIME;
static int use_system;
static int priority;
static int policy = SCHED_OTHER; /* default policy if not specified */
-static int num_threads = 1;
+static int num_threads = -1;
static int max_cycles;
static int clocksel = 0;
static int quiet;
static int interval = DEFAULT_INTERVAL;
static int distance = -1;
static struct bitmask *affinity_mask = NULL;
-static int smp = 0;
static int clocksources[] = {
CLOCK_MONOTONIC,
@@ -958,7 +957,7 @@ enum option_values {
static void process_options(int argc, char *argv[], int max_cpus)
{
int error = 0;
- int option_affinity = 0;
+ int smp = 0;
for (;;) {
int option_index = 0;
@@ -1013,10 +1012,6 @@ static void process_options(int argc, char *argv[], int max_cpus)
switch (c) {
case 'a':
case OPT_AFFINITY:
- option_affinity = 1;
- /* smp sets AFFINITY_USEALL in OPT_SMP */
- if (smp)
- break;
if (optarg) {
parse_cpumask(optarg, max_cpus, &affinity_mask);
} else if (optind < argc &&
@@ -1024,8 +1019,6 @@ static void process_options(int argc, char *argv[], int max_cpus)
argv[optind][0] == '0' ||
argv[optind][0] == '!')) {
parse_cpumask(argv[optind], max_cpus, &affinity_mask);
- } else {
- num_threads = -1;
}
if (verbose)
@@ -1117,22 +1110,14 @@ static void process_options(int argc, char *argv[], int max_cpus)
case OPT_SYSTEM:
use_system = MODE_SYS_OFFSET; break;
case 'S':
- case OPT_SMP: /* SMP testing */
- smp = 1;
- num_threads = -1; /* update after parsing */
- break;
+ case OPT_SMP:
+ smp = 1; break;
case 't':
case OPT_THREADS:
- if (smp) {
- warn("-t ignored due to smp mode\n");
- break;
- }
if (optarg != NULL)
num_threads = atoi(optarg);
else if (optind < argc && atoi(argv[optind]))
num_threads = atoi(argv[optind]);
- else
- num_threads = -1; /* update after parsing */
break;
case OPT_TRIGGER:
trigger = atoi(optarg);
@@ -1188,13 +1173,10 @@ static void process_options(int argc, char *argv[], int max_cpus)
use_nanosleep = MODE_CLOCK_NANOSLEEP;
}
- if (option_affinity && smp) {
- warn("-a ignored due to smp mode\n");
- if (affinity_mask) {
- numa_bitmask_free(affinity_mask);
- affinity_mask = NULL;
- }
- }
+ if (smp && num_threads != -1)
+ warn("--threads overwrites smp mode\n");
+ if (smp && affinity_mask)
+ warn("--affinity overwrites smp mode\n");
if (smi) {
if (affinity_mask)
Allow each command line only to update one variable and do the final decission at the end of the parsing step. With this the order of the command line is not important. Signed-off-by: Daniel Wagner <dwagner@suse.de> --- src/cyclictest/cyclictest.c | 34 ++++++++-------------------------- 1 file changed, 8 insertions(+), 26 deletions(-)