From 749b641e89db51dff01ae2f6ffe416b6d4d4f23a Mon Sep 17 00:00:00 2001 From: Wang Shilong Date: Fri, 31 Jan 2020 15:21:30 +0800 Subject: [PATCH] LU-13180 lustre: reserve bit for RDMA-only memory RPC 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 Reviewed-on: https://review.whamcloud.com/37383 Reviewed-by: Andreas Dilger Tested-by: jenkins Tested-by: Maloo Reviewed-by: Amir Shehata --- lustre/include/uapi/linux/lustre/lustre_idl.h | 1 + lustre/ptlrpc/wiretest.c | 2 ++ lustre/utils/wiretest.c | 2 ++ 3 files changed, 5 insertions(+) diff --git a/lustre/include/uapi/linux/lustre/lustre_idl.h b/lustre/include/uapi/linux/lustre/lustre_idl.h index 2ecf2b4..2843da8 100644 --- a/lustre/include/uapi/linux/lustre/lustre_idl.h +++ b/lustre/include/uapi/linux/lustre/lustre_idl.h @@ -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 */ +#define OBD_BRW_RDMA_ONLY 0x20000 /* RPC contains RDMA-only pages*/ #define OBD_BRW_OVER_ALLQUOTA (OBD_BRW_OVER_USRQUOTA | \ OBD_BRW_OVER_GRPQUOTA | \ diff --git a/lustre/ptlrpc/wiretest.c b/lustre/ptlrpc/wiretest.c index 23d2631..89fc320 100644 --- a/lustre/ptlrpc/wiretest.c +++ b/lustre/ptlrpc/wiretest.c @@ -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); + 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", diff --git a/lustre/utils/wiretest.c b/lustre/utils/wiretest.c index dc0a333..6262cc1 100644 --- a/lustre/utils/wiretest.c +++ b/lustre/utils/wiretest.c @@ -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); + 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", -- 1.8.3.1