diff --git a/0001-perftest_parameters-Add-inline-feature-support-of-ER.patch b/0001-perftest_parameters-Add-inline-feature-support-of-ER.patch new file mode 100644 index 0000000000000000000000000000000000000000..64f4334a770dc065c807018de315760b1a63eadd --- /dev/null +++ b/0001-perftest_parameters-Add-inline-feature-support-of-ER.patch @@ -0,0 +1,49 @@ +From 7389878920aba23a6b86a376a601bacd03ca9f41 Mon Sep 17 00:00:00 2001 +From: Cheng Xu +Date: Wed, 26 Oct 2022 10:39:10 +0800 +Subject: perftest_parameters: Add inline feature support of ERDMA device + +Let perftest recognize ERDMA device and set the correct max inline size. + +Signed-off-by: Cheng Xu +--- + src/perftest_parameters.c | 3 +++ + src/perftest_parameters.h | 1 + + 2 files changed, 4 insertions(+) + +diff --git a/src/perftest_parameters.c b/src/perftest_parameters.c +index 448592a..1d26e4f 100755 +--- a/src/perftest_parameters.c ++++ b/src/perftest_parameters.c +@@ -1865,6 +1865,7 @@ enum ctx_device ib_dev_name(struct ibv_context *context) + case 55300 : dev_fname = NETXTREME; break; + case 61344 : dev_fname = EFA; break; + case 61345 : dev_fname = EFA; break; ++ case 4223 : dev_fname = ERDMA; break; + default : dev_fname = UNKNOWN; + } + } +@@ -2036,6 +2037,8 @@ static void ctx_set_max_inline(struct ibv_context *context,struct perftest_param + user_param->inline_size = 32; + else if (current_dev == QLOGIC_E4) + user_param->inline_size = 128; ++ else if (current_dev == ERDMA) ++ user_param->inline_size = 96; + + } else { + user_param->inline_size = 0; +diff --git a/src/perftest_parameters.h b/src/perftest_parameters.h +index dcf6214..bfd42f0 100755 +--- a/src/perftest_parameters.h ++++ b/src/perftest_parameters.h +@@ -333,6 +333,7 @@ enum ctx_device { + CONNECTX7 = 26, + QLOGIC_AHP = 27, + BLUEFIELD3 = 28, ++ ERDMA = 29, + }; + + /* Units for rate limiter */ +-- +2.34.1 + diff --git a/0005-Perftest-replace-rand-with-getrandom-during-MR-buffe.patch b/0002-Perftest-replace-rand-with-getrandom-during-MR-buffe.patch similarity index 90% rename from 0005-Perftest-replace-rand-with-getrandom-during-MR-buffe.patch rename to 0002-Perftest-replace-rand-with-getrandom-during-MR-buffe.patch index 7d041d23efd4d51784d7be5e1e811873df80ada6..40a196f19e0f8578c087e1f36f25ee7705757046 100644 --- a/0005-Perftest-replace-rand-with-getrandom-during-MR-buffe.patch +++ b/0002-Perftest-replace-rand-with-getrandom-during-MR-buffe.patch @@ -1,6 +1,6 @@ -From cfe0f71c2382f95e809f7edefa052e7ac9a41f8e Mon Sep 17 00:00:00 2001 +From 6d8f1feed063e04d0419c0d895e919a24c7c24d4 Mon Sep 17 00:00:00 2001 From: Chengchang Tang -Date: Thu, 28 Apr 2022 15:59:42 +0800 +Date: Tue, 8 Nov 2022 20:20:44 +0800 Subject: Perftest: replace rand() with getrandom() during MR buffer initialization @@ -11,6 +11,7 @@ testing large packects in above scenario. test has been done: """ +\#define HUGE_MR_SIZE 2147483647 int main(int argc, char *argv[]) { char *a = malloc(HUGE_MR_SIZE * sizeof(char)); @@ -64,19 +65,19 @@ Signed-off-by: Chengchang Tang 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/configure.ac b/configure.ac -index 0c310f9..007957b 100755 +index 21a17bc..2bbc7fc 100755 --- a/configure.ac +++ b/configure.ac @@ -60,6 +60,7 @@ AC_PROG_LIBTOOL AC_PROG_RANLIB AC_HEADER_STDC AC_CHECK_HEADERS([infiniband/verbs.h],,[AC_MSG_ERROR([ibverbs header files not found])]) -+AC_CHECK_HEADERS([sys/random.h],,[AC_MSG_ERROR([getrandom available])]) ++AC_CHECK_HEADERS([sys/random.h],,) AC_CHECK_LIB([ibverbs], [ibv_get_device_list], [], [AC_MSG_ERROR([libibverbs not found])]) AC_CHECK_LIB([rdmacm], [rdma_create_event_channel], [], AC_MSG_ERROR([librdmacm-devel not found])) AC_CHECK_LIB([ibumad], [umad_init], [LIBUMAD=-libumad], AC_MSG_ERROR([libibumad not found])) diff --git a/src/perftest_resources.c b/src/perftest_resources.c -index dc19cc3..334bede 100755 +index 33db58e..23c31d1 100755 --- a/src/perftest_resources.c +++ b/src/perftest_resources.c @@ -22,6 +22,9 @@ @@ -89,7 +90,7 @@ index dc19cc3..334bede 100755 #ifdef HAVE_SRD #include #endif -@@ -1716,12 +1719,33 @@ int create_cqs(struct pingpong_context *ctx, struct perftest_parameters *user_pa +@@ -1542,12 +1545,33 @@ int create_cqs(struct pingpong_context *ctx, struct perftest_parameters *user_pa return ret; } @@ -124,7 +125,7 @@ index dc19cc3..334bede 100755 int flags = IBV_ACCESS_LOCAL_WRITE; -@@ -1860,13 +1884,10 @@ int create_single_mr(struct pingpong_context *ctx, struct perftest_parameters *u +@@ -1686,13 +1710,10 @@ int create_single_mr(struct pingpong_context *ctx, struct perftest_parameters *u #ifdef HAVE_CUDA if (!user_param->use_cuda) { #endif @@ -140,5 +141,5 @@ index dc19cc3..334bede 100755 #ifdef HAVE_CUDA } -- -2.30.0 +2.34.1 diff --git a/0001-Perftest-Fix-verification-of-max_inline_data-for-_cr.patch b/0003-Perftest-Fix-verification-of-max_inline_data-for-_cr.patch similarity index 90% rename from 0001-Perftest-Fix-verification-of-max_inline_data-for-_cr.patch rename to 0003-Perftest-Fix-verification-of-max_inline_data-for-_cr.patch index 73a04357e8b8712504c924c1fa975a3a45afca05..1982a5e9c6f6504119912376bc692d2965804a6e 100644 --- a/0001-Perftest-Fix-verification-of-max_inline_data-for-_cr.patch +++ b/0003-Perftest-Fix-verification-of-max_inline_data-for-_cr.patch @@ -1,6 +1,6 @@ -From 950e7e2da1b50e5aab20b2efb450890df1ef0ed1 Mon Sep 17 00:00:00 2001 +From 1a842d207a981c72c5162f4efd89da8c5a07a772 Mon Sep 17 00:00:00 2001 From: Chengchang Tang -Date: Mon, 7 Nov 2022 21:09:08 +0800 +Date: Tue, 8 Nov 2022 20:20:40 +0800 Subject: Perftest: Fix verification of max_inline_data for *_create_qp_ex() Currently, attr.cap.max_inline_data is used for validation in @@ -19,10 +19,10 @@ Signed-off-by: Chengchang Tang 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/perftest_resources.c b/src/perftest_resources.c -index b6f1cb8..5065181 100755 +index 23c31d1..751ea96 100755 --- a/src/perftest_resources.c +++ b/src/perftest_resources.c -@@ -2364,22 +2364,21 @@ struct ibv_qp* ctx_qp_create(struct pingpong_context *ctx, +@@ -2138,22 +2138,21 @@ struct ibv_qp* ctx_qp_create(struct pingpong_context *ctx, int dc_num_of_qps = user_param->num_of_qps / 2; int is_dc_server_side = 0; @@ -50,7 +50,7 @@ index b6f1cb8..5065181 100755 #endif attr.send_cq = ctx->send_cq; -@@ -2554,10 +2553,15 @@ struct ibv_qp* ctx_qp_create(struct pingpong_context *ctx, +@@ -2328,10 +2327,15 @@ struct ibv_qp* ctx_qp_create(struct pingpong_context *ctx, fprintf(stderr, "Current TX depth is %d and inline size is %d .\n", user_param->tx_depth, user_param->inline_size); } @@ -71,5 +71,5 @@ index b6f1cb8..5065181 100755 return qp; -- -2.30.0 +2.34.1 diff --git a/0004-Perftest-Increase-max-inline-size-to-support-larger-.patch b/0004-Perftest-Increase-max-inline-size-to-support-larger-.patch index 46e02eceab1ff3f86b16f250f05fa29aa256f89e..1f55d673faf40d71475d3cde00858c6f76337b32 100644 --- a/0004-Perftest-Increase-max-inline-size-to-support-larger-.patch +++ b/0004-Perftest-Increase-max-inline-size-to-support-larger-.patch @@ -1,6 +1,6 @@ -From 18152fd789f6be3eaf82684206a3ce86149180fe Mon Sep 17 00:00:00 2001 +From f1d3612de51294cf1d9eab3487fc11c37ffe1386 Mon Sep 17 00:00:00 2001 From: Chengchang Tang -Date: Tue, 8 Nov 2022 11:48:35 +0800 +Date: Tue, 8 Nov 2022 20:20:43 +0800 Subject: Perftest: Increase max inline size to support larger inline tests For some hns roce devices, a maximum of 1024 bytes of inline is @@ -14,10 +14,10 @@ Signed-off-by: Chengchang Tang 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/perftest_parameters.h b/src/perftest_parameters.h -index 717a154..25be929 100755 +index bfd42f0..9a4d2bb 100755 --- a/src/perftest_parameters.h +++ b/src/perftest_parameters.h -@@ -178,8 +178,8 @@ +@@ -177,8 +177,8 @@ #define UC_MAX_RX (16000) #define MIN_CQ_MOD (1) #define MAX_CQ_MOD (1024) @@ -29,5 +29,5 @@ index 717a154..25be929 100755 #define MAX_EQ_NUM (2048) -- -2.30.0 +2.34.1 diff --git a/0002-Perftest-Add-support-for-HNS.patch b/0005-Perftest-Add-support-for-HNS.patch similarity index 75% rename from 0002-Perftest-Add-support-for-HNS.patch rename to 0005-Perftest-Add-support-for-HNS.patch index 7e44ae33996be2051b5d8c82baef1b179b0cbb86..8694362f72d6dc8a3125738cac219be1efb1d2d6 100644 --- a/0002-Perftest-Add-support-for-HNS.patch +++ b/0005-Perftest-Add-support-for-HNS.patch @@ -1,6 +1,6 @@ -From da0dc664ee473f6e35abfadcf121fd4e4081ee9b Mon Sep 17 00:00:00 2001 +From 3dcb9a00f4f92bfb842ff7b670f1fd2b30bbf89a Mon Sep 17 00:00:00 2001 From: Chengchang Tang -Date: Fri, 16 Sep 2022 11:28:29 +0800 +Date: Tue, 8 Nov 2022 20:20:41 +0800 Subject: Perftest: Add support for HNS Add support for HNS device by making it recognized by perftest. @@ -15,13 +15,13 @@ Signed-off-by: Chengchang Tang 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/perftest_parameters.c b/src/perftest_parameters.c -index 5fd9f7d..73a8df5 100755 +index 1d26e4f..9c49265 100755 --- a/src/perftest_parameters.c +++ b/src/perftest_parameters.c -@@ -1851,6 +1851,13 @@ enum ctx_device ib_dev_name(struct ibv_context *context) - case 55300 : dev_fname = NETXTREME; break; +@@ -1866,6 +1866,13 @@ enum ctx_device ib_dev_name(struct ibv_context *context) case 61344 : dev_fname = EFA; break; case 61345 : dev_fname = EFA; break; + case 4223 : dev_fname = ERDMA; break; + case 41506 : dev_fname = HNS; break; + case 41507 : dev_fname = HNS; break; + case 41508 : dev_fname = HNS; break; @@ -32,32 +32,32 @@ index 5fd9f7d..73a8df5 100755 default : dev_fname = UNKNOWN; } } -@@ -2054,6 +2061,8 @@ static void ctx_set_max_inline(struct ibv_context *context,struct perftest_param - user_param->inline_size = 32; - else if (current_dev == QLOGIC_E4) +@@ -2039,6 +2046,8 @@ static void ctx_set_max_inline(struct ibv_context *context,struct perftest_param user_param->inline_size = 128; + else if (current_dev == ERDMA) + user_param->inline_size = 96; + else if (current_dev == HNS) + user_param->inline_size = 32; } else { user_param->inline_size = 0; diff --git a/src/perftest_parameters.h b/src/perftest_parameters.h -index bad587c..717a154 100755 +index 9a4d2bb..909d771 100755 --- a/src/perftest_parameters.h +++ b/src/perftest_parameters.h -@@ -380,6 +380,7 @@ enum ctx_device { - CONNECTX7 = 26, +@@ -334,6 +334,7 @@ enum ctx_device { QLOGIC_AHP = 27, BLUEFIELD3 = 28, -+ HNS = 29, + ERDMA = 29, ++ HNS = 30, }; /* Units for rate limiter */ diff --git a/src/perftest_resources.c b/src/perftest_resources.c -index 5065181..dc19cc3 100755 +index 751ea96..bcec080 100755 --- a/src/perftest_resources.c +++ b/src/perftest_resources.c -@@ -1979,7 +1979,8 @@ int verify_params_with_device_context(struct ibv_context *context, +@@ -1818,7 +1818,8 @@ int verify_params_with_device_context(struct ibv_context *context, current_dev != BLUEFIELD && current_dev != BLUEFIELD2 && current_dev != BLUEFIELD3 && @@ -68,5 +68,5 @@ index 5065181..dc19cc3 100755 if (!user_param->use_old_post_send) { -- -2.30.0 +2.34.1 diff --git a/0003-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch b/0006-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch similarity index 82% rename from 0003-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch rename to 0006-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch index 6f8e1c581005dcd95b0057759c02324b6d4d0f6d..ad6507647c19a9a674b26a75de67ccd865a891f6 100644 --- a/0003-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch +++ b/0006-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch @@ -1,4 +1,4 @@ -From 1c7d57d794609887f3084408630814c8f02fad1f Mon Sep 17 00:00:00 2001 +From 3ded8d702bf95186cd2ddbae7e3c23bfd1aa9d31 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Mon, 7 Nov 2022 16:09:42 +0800 Subject: Perftest: Add new HNS roce device (ROH) to support new_io @@ -11,10 +11,10 @@ Signed-off-by: Chengchang Tang 1 file changed, 3 insertions(+) diff --git a/src/perftest_parameters.c b/src/perftest_parameters.c -index 73a8df5..a048a5a 100755 +index 9c49265..034a20e 100755 --- a/src/perftest_parameters.c +++ b/src/perftest_parameters.c -@@ -1858,6 +1858,9 @@ enum ctx_device ib_dev_name(struct ibv_context *context) +@@ -1873,6 +1873,9 @@ enum ctx_device ib_dev_name(struct ibv_context *context) case 41510 : dev_fname = HNS; break; case 41512 : dev_fname = HNS; break; case 41519 : dev_fname = HNS; break; @@ -25,5 +25,5 @@ index 73a8df5..a048a5a 100755 } } -- -2.30.0 +2.34.1 diff --git a/perftest.spec b/perftest.spec index f221f2de1c32e9265763a813152f3e369ebb48a9..5694979a8d1dc9b8b2a56a95c1f30f0243c19b3b 100644 --- a/perftest.spec +++ b/perftest.spec @@ -1,16 +1,17 @@ Name: perftest Version: 4.5 -Release: 2 +Release: 3 License: GPLv2 or BSD Summary: RDMA Performance Testing Tools Url: https://github.com/linux-rdma/perftest Source: https://github.com/linux-rdma/perftest/releases/download/v4.5-0.12/perftest-4.5-0.12.ge93c538.tar.gz -Patch1: 0001-Perftest-Fix-verification-of-max_inline_data-for-_cr.patch -Patch2: 0002-Perftest-Add-support-for-HNS.patch -Patch3: 0003-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch +Patch1: 0001-perftest_parameters-Add-inline-feature-support-of-ER.patch +Patch2: 0002-Perftest-replace-rand-with-getrandom-during-MR-buffe.patch +Patch3: 0003-Perftest-Fix-verification-of-max_inline_data-for-_cr.patch Patch4: 0004-Perftest-Increase-max-inline-size-to-support-larger-.patch -Patch5: 0005-Perftest-replace-rand-with-getrandom-during-MR-buffe.patch +Patch5: 0005-Perftest-Add-support-for-HNS.patch +Patch6: 0006-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch BuildRequires: automake gcc libibverbs-devel >= 1.2.0 librdmacm-devel >= 1.0.21 libibumad-devel >= 1.3.10.2 BuildRequires: pciutils-devel @@ -36,6 +37,12 @@ done %_bindir/* %changelog +* Tue Nov 22 2022 tangchengchang - 4.5-3 +- Type: bugfix +- ID: NA +- SUG: NA +- DESC: Replace patches with the perftest community version. + * Mon Nov 07 2022 tangchengchang - 4.5-2 - Type: requirement - ID: NA