RDMA/ocrdma: Reorg structures to avoid padding
authorNaresh Gottumukkala <bgottumukkala@emulex.com>
Mon, 10 Jun 2013 04:42:42 +0000 (04:42 +0000)
committerRoland Dreier <roland@purestorage.com>
Thu, 20 Jun 2013 11:52:15 +0000 (04:52 -0700)
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>
drivers/infiniband/hw/ocrdma/ocrdma.h

index 7aa7f0f15f8ee60494c66d715bc14d9f60e5c386..d540180a8e420865a71387a630a509b203959747 100644 (file)
@@ -236,15 +236,16 @@ struct ocrdma_srq {
        struct ib_srq ibsrq;
        struct ocrdma_dev *dev;
        u8 __iomem *db;
+       struct ocrdma_qp_hwq_info rq;
+       u64 *rqe_wr_id_tbl;
+       u32 *idx_bit_fields;
+       u32 bit_fields_len;
+
        /* provide synchronization to multiple context(s) posting rqe */
        spinlock_t q_lock ____cacheline_aligned;
 
-       struct ocrdma_qp_hwq_info rq;
        struct ocrdma_pd *pd;
        u32 id;
-       u64 *rqe_wr_id_tbl;
-       u32 *idx_bit_fields;
-       u32 bit_fields_len;
 };
 
 struct ocrdma_qp {
@@ -252,8 +253,6 @@ struct ocrdma_qp {
        struct ocrdma_dev *dev;
 
        u8 __iomem *sq_db;
-       /* provide synchronization to multiple context(s) posting wqe, rqe */
-       spinlock_t q_lock ____cacheline_aligned;
        struct ocrdma_qp_hwq_info sq;
        struct {
                uint64_t wrid;
@@ -263,6 +262,9 @@ struct ocrdma_qp {
                uint8_t  rsvd[3];
        } *wqe_wr_id_tbl;
        u32 max_inline_data;
+
+       /* provide synchronization to multiple context(s) posting wqe, rqe */
+       spinlock_t q_lock ____cacheline_aligned;
        struct ocrdma_cq *sq_cq;
        /* list maintained per CQ to flush SQ errors */
        struct list_head sq_entry;