diff options
author | 2017-04-28 22:12:39 +0000 | |
---|---|---|
committer | 2017-04-28 22:12:39 +0000 | |
commit | b9b2cbfb7177a76afe78501da7ccbaea8fcbfd81 (patch) | |
tree | 88219d9d13afab50337ee91f4698c0201c24e99d | |
parent | 1168e8147843ec7c41cbdb088c33c658893d9093 (diff) |
rr assignments
-rw-r--r-- | include/grpc++/server_builder.h | 2 | ||||
-rw-r--r-- | src/core/lib/iomgr/ev_epoll1_linux.c | 5 |
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; } |