aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw/ocrdma
diff options
context:
space:
mode:
authorNaresh Gottumukkala <bgottumukkala@emulex.com>2013-06-10 00:42:42 -0400
committerRoland Dreier <roland@purestorage.com>2013-06-20 07:52:15 -0400
commit9884bcdca30ae9f29a0d6af4a4577826b00c5d94 (patch)
tree96842a8d065f59de07f02562c02fdc3e6c33b109 /drivers/infiniband/hw/ocrdma
parentdf176ea0743fd0fb0514c862797f6bd8c08ab42e (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.h14
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
250struct ocrdma_qp { 251struct 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;