From 63f2a3f278c09be49b9bd8b7ea3971c409101701 Mon Sep 17 00:00:00 2001 From: Chengchang Tang Date: Tue, 22 Nov 2022 23:52:49 +0800 Subject: [PATCH 1/2] Replace patches with community version This commit replace current patches with the community version patches to reduce the workload of maintaining perftest in the future. Signed-off-by: Chengchang Tang (cherry picked from commit 1307cd4c49f07bb01481a1547183e5f4c5842e43) --- ...ers-Add-inline-feature-support-of-ER.patch | 49 +++++++++++++++++++ ...-rand-with-getrandom-during-MR-buffe.patch | 17 ++++--- ...ification-of-max_inline_data-for-_cr.patch | 12 ++--- ...e-max-inline-size-to-support-larger-.patch | 10 ++-- ...=> 0005-Perftest-Add-support-for-HNS.patch | 30 ++++++------ ...-HNS-roce-device-ROH-to-support-new_.patch | 8 +-- perftest.spec | 17 +++++-- 7 files changed, 100 insertions(+), 43 deletions(-) create mode 100644 0001-perftest_parameters-Add-inline-feature-support-of-ER.patch rename 0005-Perftest-replace-rand-with-getrandom-during-MR-buffe.patch => 0002-Perftest-replace-rand-with-getrandom-during-MR-buffe.patch (90%) rename 0001-Perftest-Fix-verification-of-max_inline_data-for-_cr.patch => 0003-Perftest-Fix-verification-of-max_inline_data-for-_cr.patch (90%) rename 0002-Perftest-Add-support-for-HNS.patch => 0005-Perftest-Add-support-for-HNS.patch (75%) rename 0003-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch => 0006-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch (82%) 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 0000000..64f4334 --- /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 7d041d2..40a196f 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 73a0435..1982a5e 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 46e02ec..1f55d67 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 7e44ae3..8694362 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 6f8e1c5..ad65076 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 f221f2d..5694979 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 -- Gitee From f150b47fed7e089804dbb15fea91a72b14a1e8f7 Mon Sep 17 00:00:00 2001 From: herengui Date: Sun, 23 Apr 2023 13:52:41 +0800 Subject: [PATCH 2/2] sync patch file for loongarch64 Signed-off-by: herengui --- 0007-add-loongarch-support-for-perftest.patch | 35 +++++++++++++++++++ perftest.spec | 18 +++++++--- 2 files changed, 48 insertions(+), 5 deletions(-) create mode 100644 0007-add-loongarch-support-for-perftest.patch diff --git a/0007-add-loongarch-support-for-perftest.patch b/0007-add-loongarch-support-for-perftest.patch new file mode 100644 index 0000000..515f8bf --- /dev/null +++ b/0007-add-loongarch-support-for-perftest.patch @@ -0,0 +1,35 @@ +From 9600d3bae7e8f116aff303df7e13f23e67274096 Mon Sep 17 00:00:00 2001 +From: Wenlong Zhang +Date: Sat, 7 Jan 2023 03:23:20 +0000 +Subject: [PATCH] add loongarch support for perftest + +add function get_cycles for loongarch64 + +Signed-off-by: Wenlong Zhang +--- + src/get_clock.h | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/get_clock.h b/src/get_clock.h +index dacbcd0..5b7b48b 100755 +--- a/src/get_clock.h ++++ b/src/get_clock.h +@@ -105,6 +105,15 @@ static inline cycles_t get_cycles() + return cval; + } + ++#elif defined(__loongarch64) ++typedef unsigned long cycles_t; ++static inline cycles_t get_cycles() ++{ ++ cycles_t count; ++ asm volatile("rdtime.d %0, $zero" : "=r" (count)); ++ return count; ++} ++ + #else + #warning get_cycles not implemented for this architecture: attempt asm/timex.h + #include +-- +2.33.0 + diff --git a/perftest.spec b/perftest.spec index 5694979..ae58887 100644 --- a/perftest.spec +++ b/perftest.spec @@ -1,6 +1,6 @@ Name: perftest Version: 4.5 -Release: 3 +Release: 4 License: GPLv2 or BSD Summary: RDMA Performance Testing Tools Url: https://github.com/linux-rdma/perftest @@ -12,9 +12,11 @@ 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-Add-support-for-HNS.patch Patch6: 0006-Perftest-Add-new-HNS-roce-device-ROH-to-support-new_.patch +Patch7: 0007-add-loongarch-support-for-perftest.patch BuildRequires: automake gcc libibverbs-devel >= 1.2.0 librdmacm-devel >= 1.0.21 libibumad-devel >= 1.3.10.2 BuildRequires: pciutils-devel +BuildRequires: guile Obsoletes: openib-perftest < 1.3 %description @@ -37,6 +39,12 @@ done %_bindir/* %changelog +* Sun Apr 23 2023 herengui - 4.5-4 +- Type: bugfix +- ID: NA +- SUG: NA +- DESC: fix build error for loongarch64 + * Tue Nov 22 2022 tangchengchang - 4.5-3 - Type: bugfix - ID: NA @@ -52,14 +60,14 @@ done * Tue Jan 18 2022 SimpleUpdate Robot - 4.5-1 - Upgrade to version 4.5 -* Tue 3 Aug 2021 Shenmei Tu - 4.2-7 +* Tue Aug 03 2021 Shenmei Tu - 4.2-7 - bugfix-of-gcc-10.patch -* Fri 30 July 2021 Shenmei Tu - 4.2-6 +* Fri Jul 30 2021 Shenmei Tu - 4.2-6 - bug fix of multiple definition -* Web 02 Jun 2021 zhaoyao - 4.2-5 +* Wed Jun 02 2021 zhaoyao - 4.2-5 - fixs faileds: /bin/sh: gcc: command not found. -* Tue Nov 13 2019 Shuaishuai Song - 4.2-4 +* Wed Nov 13 2019 Shuaishuai Song - 4.2-4 - Package init -- Gitee