From 1f85f6ba33af282530e28c8e6a7dbaae0da8faed Mon Sep 17 00:00:00 2001 From: Soheil Hassas Yeganeh Date: Fri, 19 Oct 2018 13:05:35 -0400 Subject: Do not waste cache lines with unnecessary paddings. Make sure paddings are GPR_CACHELINE_SIZE minus the size of fields in that cache line. Otherwise, we will waste an additional cache line for no good reason. --- src/core/lib/gpr/mpscq.h | 2 +- src/core/lib/iomgr/ev_epoll1_linux.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/core/lib/gpr/mpscq.h b/src/core/lib/gpr/mpscq.h index 6b67880d1b..dac2801b4e 100644 --- a/src/core/lib/gpr/mpscq.h +++ b/src/core/lib/gpr/mpscq.h @@ -40,7 +40,7 @@ typedef struct gpr_mpscq_node { typedef struct gpr_mpscq { gpr_atm head; // make sure head & tail don't share a cacheline - char padding[GPR_CACHELINE_SIZE]; + char padding[GPR_CACHELINE_SIZE - sizeof(head)]; gpr_mpscq_node* tail; gpr_mpscq_node stub; } gpr_mpscq; diff --git a/src/core/lib/iomgr/ev_epoll1_linux.cc b/src/core/lib/iomgr/ev_epoll1_linux.cc index 6ef889b0fe..0f58b4a63e 100644 --- a/src/core/lib/iomgr/ev_epoll1_linux.cc +++ b/src/core/lib/iomgr/ev_epoll1_linux.cc @@ -195,7 +195,7 @@ struct grpc_pollset_worker { typedef struct pollset_neighborhood { gpr_mu mu; grpc_pollset* active_root; - char pad[GPR_CACHELINE_SIZE]; + char pad[GPR_CACHELINE_SIZE - sizeof(mu) - sizeof(active_root)]; } pollset_neighborhood; struct grpc_pollset { -- cgit v1.2.3