aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Vijay Pai <vpai@google.com>2017-11-14 15:23:06 -0800
committerGravatar GitHub <noreply@github.com>2017-11-14 15:23:06 -0800
commit8342e103b19678cb73e17436dc12d83e8ff141c3 (patch)
tree7cccce373b05f26b1c565540f4b9303759203e4d /src
parent1a4957f4606061c77a57b130401e45f1be0a6527 (diff)
parentb6b8de1758be800f170a15d7cf05fffc04619bb8 (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.cc10
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));