summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbutalib Aghayev <agayev@gmail.com>2016-02-09 08:17:50 -0700
committerJens Axboe <axboe@fb.com>2016-02-09 08:17:50 -0700
commit80c4041b2e7a7d5afb75df563bf51bb27773c095 (patch)
tree24269d0849176846ed7161b28c3cf7b97ce76029
parent8a1209713563b4dedea962909c18b941fb09d01a (diff)
downloadblktrace-80c4041b2e7a7d5afb75df563bf51bb27773c095.tar.gz
blktrace-80c4041b2e7a7d5afb75df563bf51bb27773c095.tar.bz2
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 <axboe@fb.com>
-rw-r--r--blktrace.c4
-rw-r--r--btreplay/btreplay.c4
-rw-r--r--verify_blkparse.c4
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",