aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-10-17 09:00:37 -0700
committerGravatar GitHub <noreply@github.com>2017-10-17 09:00:37 -0700
commit494a778ec6baf78413ca8a7052ca93d22bd20e73 (patch)
tree0a850d39a1158b47984ca82a675892be87c01288 /src/core/lib
parent457c68476de48b64a20f77c8aa14809f32989025 (diff)
parenta584d992890a6d7b51bcff16876addcd49cfe3cf (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.cc6
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));