diff options
author | Naresh Gottumukkala <bgottumukkala@emulex.com> | 2013-06-10 00:42:42 -0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2013-06-20 07:52:15 -0400 |
commit | 9884bcdca30ae9f29a0d6af4a4577826b00c5d94 (patch) | |
tree | 96842a8d065f59de07f02562c02fdc3e6c33b109 /drivers/infiniband/hw/ocrdma | |
parent | df176ea0743fd0fb0514c862797f6bd8c08ab42e (diff) |
RDMA/ocrdma: Reorg structures to avoid padding
Reorg structures to better packing to avoid cacheline padding.
Signed-off-by: Naresh Gottumukkala <bgottumukkala@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/ocrdma')
-rw-r--r-- | drivers/infiniband/hw/ocrdma/ocrdma.h | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma.h b/drivers/infiniband/hw/ocrdma/ocrdma.h index 7aa7f0f15f8e..d540180a8e42 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma.h +++ b/drivers/infiniband/hw/ocrdma/ocrdma.h | |||
@@ -236,15 +236,16 @@ struct ocrdma_srq { | |||
236 | struct ib_srq ibsrq; | 236 | struct ib_srq ibsrq; |
237 | struct ocrdma_dev *dev; | 237 | struct ocrdma_dev *dev; |
238 | u8 __iomem *db; | 238 | u8 __iomem *db; |
239 | struct ocrdma_qp_hwq_info rq; | ||
240 | u64 *rqe_wr_id_tbl; | ||
241 | u32 *idx_bit_fields; | ||
242 | u32 bit_fields_len; | ||
243 | |||
239 | /* provide synchronization to multiple context(s) posting rqe */ | 244 | /* provide synchronization to multiple context(s) posting rqe */ |
240 | spinlock_t q_lock ____cacheline_aligned; | 245 | spinlock_t q_lock ____cacheline_aligned; |
241 | 246 | ||
242 | struct ocrdma_qp_hwq_info rq; | ||
243 | struct ocrdma_pd *pd; | 247 | struct ocrdma_pd *pd; |
244 | u32 id; | 248 | u32 id; |
245 | u64 *rqe_wr_id_tbl; | ||
246 | u32 *idx_bit_fields; | ||
247 | u32 bit_fields_len; | ||
248 | }; | 249 | }; |
249 | 250 | ||
250 | struct ocrdma_qp { | 251 | struct ocrdma_qp { |
@@ -252,8 +253,6 @@ struct ocrdma_qp { | |||
252 | struct ocrdma_dev *dev; | 253 | struct ocrdma_dev *dev; |
253 | 254 | ||
254 | u8 __iomem *sq_db; | 255 | u8 __iomem *sq_db; |
255 | /* provide synchronization to multiple context(s) posting wqe, rqe */ | ||
256 | spinlock_t q_lock ____cacheline_aligned; | ||
257 | struct ocrdma_qp_hwq_info sq; | 256 | struct ocrdma_qp_hwq_info sq; |
258 | struct { | 257 | struct { |
259 | uint64_t wrid; | 258 | uint64_t wrid; |
@@ -263,6 +262,9 @@ struct ocrdma_qp { | |||
263 | uint8_t rsvd[3]; | 262 | uint8_t rsvd[3]; |
264 | } *wqe_wr_id_tbl; | 263 | } *wqe_wr_id_tbl; |
265 | u32 max_inline_data; | 264 | u32 max_inline_data; |
265 | |||
266 | /* provide synchronization to multiple context(s) posting wqe, rqe */ | ||
267 | spinlock_t q_lock ____cacheline_aligned; | ||
266 | struct ocrdma_cq *sq_cq; | 268 | struct ocrdma_cq *sq_cq; |
267 | /* list maintained per CQ to flush SQ errors */ | 269 | /* list maintained per CQ to flush SQ errors */ |
268 | struct list_head sq_entry; | 270 | struct list_head sq_entry; |