Whamcloud - gitweb
LU-13180 lustre: reserve bit for RDMA-only memory RPC 83/37383/3
authorWang Shilong <wshilong@ddn.com>
Fri, 31 Jan 2020 07:21:30 +0000 (15:21 +0800)
committerOleg Drokin <green@whamcloud.com>
Sat, 8 Feb 2020 04:08:08 +0000 (04:08 +0000)
This is reserved for RDMA-only memory integrated with Lustre.
The purpose of this bit is to:

1) disable short IO if memory is not dirextly addressie by CPU.
2) prevent CPU memory pages and RDMA memory pages merging into one RPC.

Test-Parameters: trivial
Change-Id: I148b269c5e7d7c52e760b20a6482c259407e0898
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Reviewed-on: https://review.whamcloud.com/37383
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Amir Shehata <ashehata@whamcloud.com>
lustre/include/uapi/linux/lustre/lustre_idl.h
lustre/ptlrpc/wiretest.c
lustre/utils/wiretest.c

index 2ecf2b4..2843da8 100644 (file)
@@ -1372,6 +1372,7 @@ struct hsm_state_set {
                                      * space for unstable pages; asking
                                      * it to sync quickly */
 #define OBD_BRW_OVER_PRJQUOTA 0x8000 /* Running out of project quota */
                                      * space for unstable pages; asking
                                      * it to sync quickly */
 #define OBD_BRW_OVER_PRJQUOTA 0x8000 /* Running out of project quota */
+#define OBD_BRW_RDMA_ONLY    0x20000 /* RPC contains RDMA-only pages*/
 
 #define OBD_BRW_OVER_ALLQUOTA (OBD_BRW_OVER_USRQUOTA | \
                               OBD_BRW_OVER_GRPQUOTA | \
 
 #define OBD_BRW_OVER_ALLQUOTA (OBD_BRW_OVER_USRQUOTA | \
                               OBD_BRW_OVER_GRPQUOTA | \
index 23d2631..89fc320 100644 (file)
@@ -2271,6 +2271,8 @@ void lustre_assert_wire_constants(void)
                OBD_BRW_OVER_GRPQUOTA);
        LASSERTF(OBD_BRW_SOFT_SYNC == 0x4000, "found 0x%.8x\n",
                OBD_BRW_SOFT_SYNC);
                OBD_BRW_OVER_GRPQUOTA);
        LASSERTF(OBD_BRW_SOFT_SYNC == 0x4000, "found 0x%.8x\n",
                OBD_BRW_SOFT_SYNC);
+       LASSERTF(OBD_BRW_RDMA_ONLY == 0x20000, "found 0x%.8x\n",
+                OBD_BRW_RDMA_ONLY);
 
        /* Checks for struct ost_body */
        LASSERTF((int)sizeof(struct ost_body) == 208, "found %lld\n",
 
        /* Checks for struct ost_body */
        LASSERTF((int)sizeof(struct ost_body) == 208, "found %lld\n",
index dc0a333..6262cc1 100644 (file)
@@ -2301,6 +2301,8 @@ void lustre_assert_wire_constants(void)
                OBD_BRW_OVER_GRPQUOTA);
        LASSERTF(OBD_BRW_SOFT_SYNC == 0x4000, "found 0x%.8x\n",
                OBD_BRW_SOFT_SYNC);
                OBD_BRW_OVER_GRPQUOTA);
        LASSERTF(OBD_BRW_SOFT_SYNC == 0x4000, "found 0x%.8x\n",
                OBD_BRW_SOFT_SYNC);
+       LASSERTF(OBD_BRW_RDMA_ONLY == 0x20000, "found 0x%.8x\n",
+                OBD_BRW_RDMA_ONLY);
 
        /* Checks for struct ost_body */
        LASSERTF((int)sizeof(struct ost_body) == 208, "found %lld\n",
 
        /* Checks for struct ost_body */
        LASSERTF((int)sizeof(struct ost_body) == 208, "found %lld\n",