diff options
author | 2017-10-17 09:00:37 -0700 | |
---|---|---|
committer | 2017-10-17 09:00:37 -0700 | |
commit | 494a778ec6baf78413ca8a7052ca93d22bd20e73 (patch) | |
tree | 0a850d39a1158b47984ca82a675892be87c01288 /src/core/lib | |
parent | 457c68476de48b64a20f77c8aa14809f32989025 (diff) | |
parent | a584d992890a6d7b51bcff16876addcd49cfe3cf (diff) |
Merge pull request #13021 from iancoolidge/devel-getcpu
cpu_linux: Don't spam sched_getcpu failures on qemu
Diffstat (limited to 'src/core/lib')
-rw-r--r-- | src/core/lib/support/cpu_linux.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/lib/support/cpu_linux.cc b/src/core/lib/support/cpu_linux.cc index 2280668442..53619caa5f 100644 --- a/src/core/lib/support/cpu_linux.cc +++ b/src/core/lib/support/cpu_linux.cc @@ -38,8 +38,9 @@ static int ncpus = 0; static void init_num_cpus() { /* This must be signed. sysconf returns -1 when the number cannot be determined */ + int cpu = sched_getcpu(); ncpus = (int)sysconf(_SC_NPROCESSORS_ONLN); - if (ncpus < 1) { + if (ncpus < 1 || cpu < 0) { gpr_log(GPR_ERROR, "Cannot determine number of CPUs: assuming 1"); ncpus = 1; } @@ -56,6 +57,9 @@ unsigned gpr_cpu_current_cpu(void) { // sched_getcpu() is undefined on musl return 0; #else + if (gpr_cpu_num_cores() == 1) { + return 0; + } int cpu = sched_getcpu(); if (cpu < 0) { gpr_log(GPR_ERROR, "Error determining current CPU: %s\n", strerror(errno)); |