diff --git a/0034-test-nvmf-Fix-trap.patch b/0034-test-nvmf-Fix-trap.patch new file mode 100644 index 0000000..342a5b5 --- /dev/null +++ b/0034-test-nvmf-Fix-trap.patch @@ -0,0 +1,35 @@ +From b76cb37ce4bfd53eb48ae299cf0067b4647f8a21 Mon Sep 17 00:00:00 2001 +From: Michal Berger +Date: Mon, 31 Oct 2022 09:25:11 +0100 +Subject: [PATCH] test/nvmf: Fix trap + +Also, add at_app_exit() to make sure that all vhost and qemu +instances are terminated as well. + +Signed-off-by: Michal Berger +Change-Id: I917f1cb1b02d18b78a482d754a19f509e580fc98 +Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15185 +Reviewed-by: Jim Harris +Tested-by: SPDK CI Jenkins +Reviewed-by: Pawel Piatek +Reviewed-by: Konrad Sztyber +--- + test/nvmf/target/nvmf_vhost.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/nvmf/target/nvmf_vhost.sh b/test/nvmf/target/nvmf_vhost.sh +index 9c9dde35d..c00a66b18 100755 +--- a/test/nvmf/target/nvmf_vhost.sh ++++ b/test/nvmf/target/nvmf_vhost.sh +@@ -35,7 +35,7 @@ mkdir -p "$(get_vhost_dir 3)" + vhostpid=$! + waitforlisten $vhostpid $NVMF_SOCK + +-trap 'process_shm --id $NVMF_APP_SHM_ID; killprocess $vhostpid nvmftestfini; exit 1' SIGINT SIGTERM EXIT ++trap 'process_shm --id $NVMF_APP_SHM_ID; nvmftestfini; at_app_exit; exit 1' SIGINT SIGTERM EXIT + + # Configure NVMF tgt on host machine + malloc_bdev="$($NVMF_RPC bdev_malloc_create $MALLOC_BDEV_SIZE $MALLOC_BLOCK_SIZE)" +-- +2.37.2.windows.2 + diff --git a/0035-scripts-nvmf_perf-fix-pylint-C0411-wrong-import-orde.patch b/0035-scripts-nvmf_perf-fix-pylint-C0411-wrong-import-orde.patch new file mode 100644 index 0000000..32dec95 --- /dev/null +++ b/0035-scripts-nvmf_perf-fix-pylint-C0411-wrong-import-orde.patch @@ -0,0 +1,51 @@ +From 6882e04563c8b406c2751ad258b5dd87786937aa Mon Sep 17 00:00:00 2001 +From: Karol Latecki +Date: Thu, 28 Jan 2021 14:04:03 +0100 +Subject: [PATCH] scripts/nvmf_perf: fix pylint C0411 wrong import order + +Standard lib modules first, then pip installed modules +and local modules last. + +Signed-off-by: Karol Latecki +Change-Id: If0159fad29bab5bef0b69aa803e3cea429cc5f25 +Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6202 +Reviewed-by: Maciej Wawryk +Reviewed-by: Tomasz Zawadzki +Reviewed-by: Pawel Piatek +Reviewed-by: Jim Harris +Tested-by: SPDK CI Jenkins +Community-CI: Mellanox Build Bot +--- + scripts/perf/nvmf/run_nvmf.py | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/scripts/perf/nvmf/run_nvmf.py b/scripts/perf/nvmf/run_nvmf.py +index 2883d9a99..2c5331e86 100755 +--- a/scripts/perf/nvmf/run_nvmf.py ++++ b/scripts/perf/nvmf/run_nvmf.py +@@ -4,17 +4,19 @@ import os + import re + import sys + import json +-import paramiko + import zipfile + import threading + import subprocess + import itertools + import time + import uuid ++from collections import OrderedDict ++ ++import paramiko ++import pandas as pd ++ + import rpc + import rpc.client +-import pandas as pd +-from collections import OrderedDict + from common import * + + +-- +2.37.2.windows.2 + diff --git a/0036-scripts-nvmf_perf-fix-pylint-E1111-error-assignment-.patch b/0036-scripts-nvmf_perf-fix-pylint-E1111-error-assignment-.patch new file mode 100644 index 0000000..6066d5d --- /dev/null +++ b/0036-scripts-nvmf_perf-fix-pylint-E1111-error-assignment-.patch @@ -0,0 +1,43 @@ +From 62c2c1c110f7d569110876108963d118fe20af34 Mon Sep 17 00:00:00 2001 +From: Karol Latecki +Date: Thu, 28 Jan 2021 14:08:31 +0100 +Subject: [PATCH] scripts/nvmf_perf: fix pylint E1111 error - assignment on no + return + +Fix assigning variables from functions which return nothing. + +Change-Id: Ic54dc0d42e3339cda23970ed347ac6f7bf92e795 +Signed-off-by: Karol Latecki +Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6203 +Tested-by: SPDK CI Jenkins +Reviewed-by: Maciej Wawryk +Reviewed-by: Tomasz Zawadzki +Reviewed-by: Jim Harris +Community-CI: Mellanox Build Bot +--- + scripts/perf/nvmf/run_nvmf.py | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/scripts/perf/nvmf/run_nvmf.py b/scripts/perf/nvmf/run_nvmf.py +index 2c5331e86..63179923a 100755 +--- a/scripts/perf/nvmf/run_nvmf.py ++++ b/scripts/perf/nvmf/run_nvmf.py +@@ -647,11 +647,11 @@ class SPDKTarget(Target): + rpc.client.print_dict(rpc.nvmf.nvmf_get_transports(self.client)) + + if self.null_block: +- nvme_section = self.spdk_tgt_add_nullblock(self.null_block) +- subsystems_section = self.spdk_tgt_add_subsystem_conf(self.nic_ips, self.null_block) ++ self.spdk_tgt_add_nullblock(self.null_block) ++ self.spdk_tgt_add_subsystem_conf(self.nic_ips, self.null_block) + else: +- nvme_section = self.spdk_tgt_add_nvme_conf() +- subsystems_section = self.spdk_tgt_add_subsystem_conf(self.nic_ips) ++ self.spdk_tgt_add_nvme_conf() ++ self.spdk_tgt_add_subsystem_conf(self.nic_ips) + self.log_print("Done configuring SPDK NVMeOF Target") + + def spdk_tgt_add_nullblock(self, null_block_count): +-- +2.37.2.windows.2 + diff --git a/0037-scripts-nvmf_perf-check-extra_params-key-berofe-acce.patch b/0037-scripts-nvmf_perf-check-extra_params-key-berofe-acce.patch new file mode 100644 index 0000000..81a0833 --- /dev/null +++ b/0037-scripts-nvmf_perf-check-extra_params-key-berofe-acce.patch @@ -0,0 +1,37 @@ +From 4dd1548be3a04d4ae072c4edcfc0a349036f4df2 Mon Sep 17 00:00:00 2001 +From: Karol Latecki +Date: Thu, 28 Jan 2021 16:30:49 +0100 +Subject: [PATCH] scripts/nvmf_perf: check "extra_params" key berofe accessing + it + +If config without this field was used then +script resulted in KeyError exception. + +Signed-off-by: Karol Latecki +Change-Id: Icf0b270d28dcc6bf44b66c4b9ed583a6b3ef08b6 +Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6204 +Tested-by: SPDK CI Jenkins +Community-CI: Mellanox Build Bot +Reviewed-by: Tomasz Zawadzki +Reviewed-by: Jim Harris +Reviewed-by: Maciej Wawryk +--- + scripts/perf/nvmf/run_nvmf.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/perf/nvmf/run_nvmf.py b/scripts/perf/nvmf/run_nvmf.py +index 63179923a..7885ff2f0 100755 +--- a/scripts/perf/nvmf/run_nvmf.py ++++ b/scripts/perf/nvmf/run_nvmf.py +@@ -772,7 +772,7 @@ class KernelInitiator(Initiator): + cpu_frequency=cpu_frequency, fio_bin=fio_bin) + + self.extra_params = "" +- if kwargs["extra_params"]: ++ if "extra_params" in kwargs.keys(): + self.extra_params = kwargs["extra_params"] + + def __del__(self): +-- +2.37.2.windows.2 + diff --git a/0038-nvme-rdma-Only-wait-for-the-RDMA-event-if-spdk_rdma_.patch b/0038-nvme-rdma-Only-wait-for-the-RDMA-event-if-spdk_rdma_.patch new file mode 100644 index 0000000..11106e3 --- /dev/null +++ b/0038-nvme-rdma-Only-wait-for-the-RDMA-event-if-spdk_rdma_.patch @@ -0,0 +1,46 @@ +From 74b2916c4a7d90a882b671c925f0e86dc0cb6338 Mon Sep 17 00:00:00 2001 +From: Ziye Yang +Date: Sat, 30 Jan 2021 01:25:32 +0800 +Subject: [PATCH] nvme/rdma: Only wait for the RDMA event if + spdk_rdma_qp_disconnect return 0 + +If rdma_qp_disconnect is not correctly sent out, we will not wait +for the event. + +Change-Id: I99701e421dc93909d481ccf35e9bfd8004e60da8 +Signed-off-by: Ziye Yang +Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6163 +Tested-by: SPDK CI Jenkins +Reviewed-by: Aleksey Marchuk +Reviewed-by: Jim Harris +Reviewed-by: +--- + lib/nvme/nvme_rdma.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/lib/nvme/nvme_rdma.c b/lib/nvme/nvme_rdma.c +index 1046f3d91..47023c083 100644 +--- a/lib/nvme/nvme_rdma.c ++++ b/lib/nvme/nvme_rdma.c +@@ -1646,6 +1646,7 @@ nvme_rdma_ctrlr_disconnect_qpair(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme + struct nvme_rdma_qpair *rqpair = nvme_rdma_qpair(qpair); + struct nvme_rdma_ctrlr *rctrlr = NULL; + struct nvme_rdma_cm_event_entry *entry, *tmp; ++ int rc; + + spdk_rdma_free_mem_map(&rqpair->mr_map); + nvme_rdma_unregister_reqs(rqpair); +@@ -1673,8 +1674,8 @@ nvme_rdma_ctrlr_disconnect_qpair(struct spdk_nvme_ctrlr *ctrlr, struct spdk_nvme + + if (rqpair->cm_id) { + if (rqpair->rdma_qp) { +- spdk_rdma_qp_disconnect(rqpair->rdma_qp); +- if (rctrlr != NULL) { ++ rc = spdk_rdma_qp_disconnect(rqpair->rdma_qp); ++ if ((rctrlr != NULL) && (rc == 0)) { + if (nvme_rdma_process_event(rqpair, rctrlr->cm_channel, RDMA_CM_EVENT_DISCONNECTED)) { + SPDK_DEBUGLOG(nvme, "Target did not respond to qpair disconnect.\n"); + } +-- +2.37.2.windows.2 + diff --git a/0039-Cleanup-Fix-boolean-arg-in-fio-plugin.patch b/0039-Cleanup-Fix-boolean-arg-in-fio-plugin.patch new file mode 100644 index 0000000..17f425f --- /dev/null +++ b/0039-Cleanup-Fix-boolean-arg-in-fio-plugin.patch @@ -0,0 +1,46 @@ +From b56f1ef5e47b740e2934ef25ea9d051bde8917d4 Mon Sep 17 00:00:00 2001 +From: Matthew King +Date: Mon, 18 Jan 2021 16:42:09 +0000 +Subject: [PATCH] Cleanup: Fix boolean arg in fio plugin. + +In fio, bools are represented as ints. They have to be read into int entries +in the options struct, or memory corruption may occur. +Also provided a default to bring it more in line with existing fio code. + +Signed-off-by: Matthew King +Change-Id: Ib718653d6597a287bf8ff96d2fb864e46295751d +Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6147 +Tested-by: SPDK CI Jenkins +Community-CI: Mellanox Build Bot +Reviewed-by: Shuhei Matsumoto +Reviewed-by: Aleksey Marchuk +Reviewed-by: Ben Walker +Reviewed-by: +--- + examples/bdev/fio_plugin/fio_plugin.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/examples/bdev/fio_plugin/fio_plugin.c b/examples/bdev/fio_plugin/fio_plugin.c +index 90f1c4bb4..8d82e0363 100644 +--- a/examples/bdev/fio_plugin/fio_plugin.c ++++ b/examples/bdev/fio_plugin/fio_plugin.c +@@ -59,7 +59,7 @@ struct spdk_fio_options { + char *conf; + char *json_conf; + unsigned mem_mb; +- bool mem_single_seg; ++ int mem_single_seg; + }; + + struct spdk_fio_request { +@@ -789,6 +789,7 @@ static struct fio_option options[] = { + .type = FIO_OPT_BOOL, + .off1 = offsetof(struct spdk_fio_options, mem_single_seg), + .help = "If set to 1, SPDK will use just a single hugetlbfs file", ++ .def = "0", + .category = FIO_OPT_C_ENGINE, + .group = FIO_OPT_G_INVALID, + }, +-- +2.37.2.windows.2 + diff --git a/spdk.spec b/spdk.spec index 701e773..1ce766d 100644 --- a/spdk.spec +++ b/spdk.spec @@ -4,7 +4,7 @@ Name: spdk Version: 21.01.1 -Release: 12 +Release: 13 Summary: Set of libraries and utilities for high performance user-mode storage License: BSD and MIT URL: http://spdk.io @@ -42,6 +42,12 @@ Patch30: 0030-nvme_ctrlr_abort_queued_aborts-Segmentation-fault-oc.patch Patch31: 0031-Fix-UAF-in-STAILQ_FOREACH.patch Patch32: 0032-spdk-upgrade-ocf-lib-and-ocf-bdev-to-latest-SPDK-22.patch Patch33: 0033-SPDK-enable-xcache.patch +Patch34: 0034-test-nvmf-Fix-trap.patch +Patch35: 0035-scripts-nvmf_perf-fix-pylint-C0411-wrong-import-orde.patch +Patch36: 0036-scripts-nvmf_perf-fix-pylint-E1111-error-assignment-.patch +Patch37: 0037-scripts-nvmf_perf-check-extra_params-key-berofe-acce.patch +Patch38: 0038-nvme-rdma-Only-wait-for-the-RDMA-event-if-spdk_rdma_.patch +Patch39: 0039-Cleanup-Fix-boolean-arg-in-fio-plugin.patch %define package_version %{version}-%{release} @@ -218,6 +224,9 @@ mv doc/output/html/ %{install_docdir} %changelog +* Wed Mar 15 2023 tongkunkun - 21.01.1-13 +- backport upstream patches + * Thu Jan 19 2023 shikemeng - 21.01.1-12 - Fix compile error that "undefined reference to spdk_backdev_submit_io"