aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-04-28 22:12:39 +0000
committerGravatar Craig Tiller <ctiller@google.com>2017-04-28 22:12:39 +0000
commitb9b2cbfb7177a76afe78501da7ccbaea8fcbfd81 (patch)
tree88219d9d13afab50337ee91f4698c0201c24e99d
parent1168e8147843ec7c41cbdb088c33c658893d9093 (diff)
rr assignments
-rw-r--r--include/grpc++/server_builder.h2
-rw-r--r--src/core/lib/iomgr/ev_epoll1_linux.c5
2 files changed, 5 insertions, 2 deletions
diff --git a/include/grpc++/server_builder.h b/include/grpc++/server_builder.h
index 7ac23349c8..d9de83226b 100644
--- a/include/grpc++/server_builder.h
+++ b/include/grpc++/server_builder.h
@@ -195,7 +195,7 @@ class ServerBuilder {
struct SyncServerSettings {
SyncServerSettings()
- : num_cqs(1), min_pollers(1), max_pollers(2), cq_timeout_msec(10000) {}
+ : num_cqs(GPR_MAX(1,gpr_cpu_num_cores())), min_pollers(1), max_pollers(2), cq_timeout_msec(10000) {}
// Number of server completion queues to create to listen to incoming RPCs.
int num_cqs;
diff --git a/src/core/lib/iomgr/ev_epoll1_linux.c b/src/core/lib/iomgr/ev_epoll1_linux.c
index a25168fdb4..6f0416d0d3 100644
--- a/src/core/lib/iomgr/ev_epoll1_linux.c
+++ b/src/core/lib/iomgr/ev_epoll1_linux.c
@@ -386,9 +386,12 @@ static void pollset_global_shutdown(void) {
}
static void pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
+ static gpr_atm next_neighbourhood;
+
gpr_mu_init(&pollset->mu);
*mu = &pollset->mu;
- pollset->neighbourhood = &g_neighbourhoods[gpr_cpu_current_cpu()];
+ pollset->neighbourhood = &g_neighbourhoods[(size_t)gpr_atm_no_barrier_fetch_add(&next_neighbourhood, 1) % g_num_neighbourhoods];
+gpr_log(GPR_DEBUG, "nh=%d", (int)(pollset->neighbourhood - g_neighbourhoods));
pollset->seen_inactive = true;
pollset->next = pollset->prev = pollset;
}