diff options
author | Vijay Pai <vpai@google.com> | 2017-11-14 15:23:06 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-14 15:23:06 -0800 |
commit | 8342e103b19678cb73e17436dc12d83e8ff141c3 (patch) | |
tree | 7cccce373b05f26b1c565540f4b9303759203e4d /src | |
parent | 1a4957f4606061c77a57b130401e45f1be0a6527 (diff) | |
parent | b6b8de1758be800f170a15d7cf05fffc04619bb8 (diff) |
Merge pull request #13138 from iancoolidge/devel-getcpu
reland: cpu_linux: Don't spam sched_getcpu failures on qemu
Diffstat (limited to 'src')
-rw-r--r-- | src/core/lib/support/cpu_linux.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/core/lib/support/cpu_linux.cc b/src/core/lib/support/cpu_linux.cc index 2280668442..21b1a71dc9 100644 --- a/src/core/lib/support/cpu_linux.cc +++ b/src/core/lib/support/cpu_linux.cc @@ -36,6 +36,13 @@ static int ncpus = 0; static void init_num_cpus() { +#ifndef GPR_MUSL_LIBC_COMPAT + if (sched_getcpu() < 0) { + gpr_log(GPR_ERROR, "Error determining current CPU: %s\n", strerror(errno)); + ncpus = 1; + return; + } +#endif /* This must be signed. sysconf returns -1 when the number cannot be determined */ ncpus = (int)sysconf(_SC_NPROCESSORS_ONLN); @@ -56,6 +63,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)); |