diff options
-rw-r--r-- | src/cyclictest/cyclictest.c | 7 | ||||
-rw-r--r-- | src/cyclictest/rt_numa.h | 18 |
2 files changed, 15 insertions, 10 deletions
diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c index 213c527..b3abfcc 100644 --- a/src/cyclictest/cyclictest.c +++ b/src/cyclictest/cyclictest.c @@ -1451,12 +1451,11 @@ static void process_options (int argc, char *argv[], int max_cpus) setvbuf(stdout, NULL, _IONBF, 0); break; case 'U': case OPT_NUMA: /* NUMA testing */ + numa = 1; /* Turn numa on */ if (smp) fatal("numa and smp options are mutually exclusive\n"); + numa_on_and_available(); #ifdef NUMA - if (numa_available() == -1) - fatal("NUMA functionality not available!"); - numa = 1; num_threads = max_cpus; setaffinity = AFFINITY_USEALL; use_nanosleep = MODE_CLOCK_NANOSLEEP; @@ -1816,8 +1815,6 @@ int main(int argc, char **argv) if (verbose) printf("Max CPUs = %d\n", max_cpus); - /* Checks if numa is on, program exits if numa on but not available */ - numa_on_and_available(); /* lock all memory (prevent swapping) */ if (lockall) diff --git a/src/cyclictest/rt_numa.h b/src/cyclictest/rt_numa.h index 06c9420..c1b3f94 100644 --- a/src/cyclictest/rt_numa.h +++ b/src/cyclictest/rt_numa.h @@ -192,6 +192,12 @@ static inline void rt_bitmask_free(struct bitmask *mask) #endif /* LIBNUMA_API_VERSION */ +static void numa_on_and_available() +{ + if (numa && (numa_available() == -1)) + fatal("--numa specified and numa functions not available.\n"); +} + #else /* ! NUMA */ struct bitmask { @@ -249,17 +255,19 @@ static inline void rt_bitmask_free(struct bitmask *mask) free(mask); } -#endif /* NUMA */ -/* - * Any behavioral differences above are transparent to these functions - */ static void numa_on_and_available() { - if (numa && (numa_available() == -1)) + if (numa) /* NUMA is not defined here */ fatal("--numa specified and numa functions not available.\n"); } +#endif /* NUMA */ + +/* + * Any behavioral differences above are transparent to these functions + */ + /** Returns number of bits set in mask. */ static inline unsigned int rt_numa_bitmask_count(const struct bitmask *mask) { |