From 80c4041b2e7a7d5afb75df563bf51bb27773c095 Mon Sep 17 00:00:00 2001 From: Abutalib Aghayev Date: Tue, 9 Feb 2016 08:17:50 -0700 Subject: [PATCH] blktrace: Use number of online CPUs Currently, blktrace uses _SC_NPROCESSORS_CONF to find out the number of CPUs. This is a problem, because if you reduce the number of online CPUs by passing kernel parameter maxcpus, then blktrace fails to start with the error: FAILED to start thread on CPU 4: 22/Invalid argument FAILED to start thread on CPU 5: 22/Invalid argument ... The attached patch fixes it to use _SC_NPROCESSORS_ONLN. Signed-off-by: Jens Axboe --- blktrace.c | 4 ++-- btreplay/btreplay.c | 4 ++-- verify_blkparse.c | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/blktrace.c b/blktrace.c index 3c8fb4c..b445524 100644 --- a/blktrace.c +++ b/blktrace.c @@ -2663,9 +2663,9 @@ int main(int argc, char *argv[]) setlocale(LC_NUMERIC, "en_US"); pagesize = getpagesize(); - ncpus = sysconf(_SC_NPROCESSORS_CONF); + ncpus = sysconf(_SC_NPROCESSORS_ONLN); if (ncpus < 0) { - fprintf(stderr, "sysconf(_SC_NPROCESSORS_CONF) failed %d/%s\n", + fprintf(stderr, "sysconf(_SC_NPROCESSORS_ONLN) failed %d/%s\n", errno, strerror(errno)); ret = 1; goto out; diff --git a/btreplay/btreplay.c b/btreplay/btreplay.c index 2a1e1cc..6d19564 100644 --- a/btreplay/btreplay.c +++ b/btreplay/btreplay.c @@ -502,8 +502,8 @@ static inline void start_iter(void) */ static void get_ncpus(void) { -#ifdef _SC_NPROCESSORS_CONF - ncpus = sysconf(_SC_NPROCESSORS_CONF); +#ifdef _SC_NPROCESSORS_ONLN + ncpus = sysconf(_SC_NPROCESSORS_ONLN); #else int nrcpus = 4096; cpu_set_t * cpus; diff --git a/verify_blkparse.c b/verify_blkparse.c index 5689f43..3f3e92a 100644 --- a/verify_blkparse.c +++ b/verify_blkparse.c @@ -16,8 +16,8 @@ int main(int argc, char *argv[]) unsigned int seq; FILE *f; -#ifdef _SC_NPROCESSORS_CONF - MAX_CPUS = sysconf(_SC_NPROCESSORS_CONF); +#ifdef _SC_NPROCESSORS_ONLN + MAX_CPUS = sysconf(_SC_NPROCESSORS_ONLN); if (MAX_CPUS < 1) { fprintf(stderr, "Could not determine number of CPUs online:\n%s\n", -- 2.25.1