RDMA/siw: Reduce memory usage of struct siw_rx_stream
authorGuoqing Jiang <guoqing.jiang@linux.dev>
Sun, 3 Dec 2023 09:26:53 +0000 (17:26 +0800)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 5 Dec 2023 00:13:30 +0000 (20:13 -0400)
We can reduce the memory of the struct by move some of it's
member.

Before,

/* size: 144, cachelines: 3, members: 17 */
/* sum members: 124, holes: 3, sum holes: 12 */
/* sum bitfield members: 7 bits (0 bytes) */
/* padding: 7 */
/* bit_padding: 1 bits */

After

/* size: 128, cachelines: 2, members: 17 */
/* padding: 3 */
/* bit_padding: 1 bits */

Link: https://lore.kernel.org/r/20231203092655.28102-3-guoqing.jiang@linux.dev
Acked-by: Bernard Metzler <bmt@zurich.ibm.com>
Signed-off-by: Guoqing Jiang <guoqing.jiang@linux.dev>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/siw/siw.h

index d14bb965af755c5ed56b4609c0d99068eb5ffbcf..2edba2a864bbcafe88e4277d1af837ce2a443aaf 100644 (file)
@@ -288,10 +288,11 @@ struct siw_rx_stream {
        int skb_offset; /* offset in skb */
        int skb_copied; /* processed bytes in skb */
 
+       enum siw_rx_state state;
+
        union iwarp_hdr hdr;
        struct mpa_trailer trailer;
-
-       enum siw_rx_state state;
+       struct shash_desc *mpa_crc_hd;
 
        /*
         * For each FPDU, main RX loop runs through 3 stages:
@@ -313,7 +314,6 @@ struct siw_rx_stream {
        u64 ddp_to;
        u32 inval_stag; /* Stag to be invalidated */
 
-       struct shash_desc *mpa_crc_hd;
        u8 rx_suspend : 1;
        u8 pad : 2; /* # of pad bytes expected */
        u8 rdmap_op : 4; /* opcode of current frame */