Compare commits
10 Commits
754f09cf66
...
5718e73c11
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5718e73c11 | ||
|
|
e3797ecafa | ||
|
|
633433eeec | ||
|
|
38dd77bbd5 | ||
|
|
69b6d513e4 | ||
|
|
e412bdf321 | ||
|
|
25e7855b1b | ||
|
|
ee7fe5ed58 | ||
|
|
41882f213a | ||
|
|
f9f03bd354 |
129
0029-Fix-build-warning.patch
Normal file
129
0029-Fix-build-warning.patch
Normal file
@ -0,0 +1,129 @@
|
||||
From b6dfc64f484328e503b8be76d6a7c401f75be931 Mon Sep 17 00:00:00 2001
|
||||
From: wangxiaomeng <wangxiaomeng@kylinos.cn>
|
||||
Date: Thu, 14 Mar 2024 17:19:12 +0800
|
||||
Subject: [PATCH] Fix build warning
|
||||
|
||||
---
|
||||
app/spdk_top/spdk_top.c | 32 ++++++++++++++++----------------
|
||||
1 file changed, 16 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/app/spdk_top/spdk_top.c b/app/spdk_top/spdk_top.c
|
||||
index 3c0a889..d72c26f 100644
|
||||
--- a/app/spdk_top/spdk_top.c
|
||||
+++ b/app/spdk_top/spdk_top.c
|
||||
@@ -674,7 +674,7 @@ print_max_len(WINDOW *win, int row, uint16_t col, uint16_t max_len, enum str_ali
|
||||
snprintf(&tmp_str[max_str - DOTS_STR_LEN - 2], DOTS_STR_LEN, "%s", dots);
|
||||
}
|
||||
|
||||
- mvwprintw(win, row, col, tmp_str);
|
||||
+ mvwprintw(win, row, col, "%s", tmp_str);
|
||||
|
||||
refresh();
|
||||
wrefresh(win);
|
||||
@@ -1937,19 +1937,19 @@ display_thread(struct rpc_thread_info *thread_info)
|
||||
|
||||
print_left(thread_win, 3, THREAD_WIN_FIRST_COL, THREAD_WIN_WIDTH,
|
||||
"Core: Idle [us]: Busy [us]:", COLOR_PAIR(5));
|
||||
- mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 6, "%" PRIu64,
|
||||
+ mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 6, "%d",
|
||||
thread_info->core_num);
|
||||
|
||||
if (g_interval_data) {
|
||||
get_time_str(g_thread_history[thread_info->id].idle, idle_time);
|
||||
- mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, idle_time);
|
||||
+ mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, "%s", idle_time);
|
||||
get_time_str(g_thread_history[thread_info->id].busy, busy_time);
|
||||
- mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, busy_time);
|
||||
+ mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, "%s", busy_time);
|
||||
} else {
|
||||
get_time_str(thread_info->idle, idle_time);
|
||||
- mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, idle_time);
|
||||
+ mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 32, "%s", idle_time);
|
||||
get_time_str(thread_info->busy, busy_time);
|
||||
- mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, busy_time);
|
||||
+ mvwprintw(thread_win, 3, THREAD_WIN_FIRST_COL + 54, "%s", busy_time);
|
||||
}
|
||||
|
||||
print_left(thread_win, 4, THREAD_WIN_FIRST_COL, THREAD_WIN_WIDTH,
|
||||
@@ -1979,7 +1979,7 @@ display_thread(struct rpc_thread_info *thread_info)
|
||||
mvwprintw(thread_win, current_row, THREAD_WIN_FIRST_COL, "%s", poller->name);
|
||||
mvwprintw(thread_win, current_row, THREAD_WIN_FIRST_COL + 33, "Active");
|
||||
snprintf(run_count, MAX_POLLER_COUNT_STR_LEN, "%" PRIu64, poller->run_count);
|
||||
- mvwprintw(thread_win, current_row, THREAD_WIN_FIRST_COL + 41, run_count);
|
||||
+ mvwprintw(thread_win, current_row, THREAD_WIN_FIRST_COL + 41, "%s", run_count);
|
||||
current_row++;
|
||||
}
|
||||
pollers = &thread->timed_pollers;
|
||||
@@ -2108,20 +2108,20 @@ show_core(uint8_t current_page)
|
||||
get_time_str(core_info[core_number]->idle, idle_time);
|
||||
get_time_str(core_info[core_number]->busy, busy_time);
|
||||
}
|
||||
- mvwprintw(core_win, 3, CORE_WIN_FIRST_COL + 20, idle_time);
|
||||
+ mvwprintw(core_win, 3, CORE_WIN_FIRST_COL + 20, "%s", idle_time);
|
||||
|
||||
print_left(core_win, 5, 1, CORE_WIN_WIDTH, "Poller count: Busy time:", COLOR_PAIR(5));
|
||||
mvwprintw(core_win, 5, CORE_WIN_FIRST_COL, "%" PRIu64,
|
||||
g_cores_history[core_number].pollers_count);
|
||||
|
||||
- mvwprintw(core_win, 5, CORE_WIN_FIRST_COL + 20, busy_time);
|
||||
+ mvwprintw(core_win, 5, CORE_WIN_FIRST_COL + 20, "%s", busy_time);
|
||||
|
||||
mvwhline(core_win, 4, 1, ACS_HLINE, CORE_WIN_WIDTH - 2);
|
||||
mvwhline(core_win, 6, 1, ACS_HLINE, CORE_WIN_WIDTH - 2);
|
||||
print_left(core_win, 7, 1, CORE_WIN_WIDTH, "Threads on this core", COLOR_PAIR(5));
|
||||
|
||||
for (j = 0; j < core_info[core_number]->threads.threads_count; j++) {
|
||||
- mvwprintw(core_win, j + 8, 1, core_info[core_number]->threads.thread[j].name);
|
||||
+ mvwprintw(core_win, j + 8, 1, "%s", core_info[core_number]->threads.thread[j].name);
|
||||
}
|
||||
|
||||
refresh();
|
||||
@@ -2132,7 +2132,7 @@ show_core(uint8_t current_page)
|
||||
while (!stop_loop) {
|
||||
for (j = 0; j < core_info[core_number]->threads.threads_count; j++) {
|
||||
if (j != current_threads_row) {
|
||||
- mvwprintw(core_win, j + 8, 1, core_info[core_number]->threads.thread[j].name);
|
||||
+ mvwprintw(core_win, j + 8, 1, "%s", core_info[core_number]->threads.thread[j].name);
|
||||
} else {
|
||||
print_left(core_win, j + 8, 1, CORE_WIN_WIDTH - 2,
|
||||
core_info[core_number]->threads.thread[j].name, COLOR_PAIR(2));
|
||||
@@ -2204,9 +2204,9 @@ show_poller(uint8_t current_page)
|
||||
mvwaddch(poller_win, 2, POLLER_WIN_WIDTH, ACS_RTEE);
|
||||
|
||||
print_left(poller_win, 3, 2, POLLER_WIN_WIDTH, "Type: On thread:", COLOR_PAIR(5));
|
||||
- mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL,
|
||||
+ mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL, "%s",
|
||||
poller_type_str[pollers[poller_number]->type]);
|
||||
- mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL + 23, pollers[poller_number]->thread_name);
|
||||
+ mvwprintw(poller_win, 3, POLLER_WIN_FIRST_COL + 23, "%s", pollers[poller_number]->thread_name);
|
||||
|
||||
print_left(poller_win, 4, 2, POLLER_WIN_WIDTH, "Run count:", COLOR_PAIR(5));
|
||||
|
||||
@@ -2221,7 +2221,7 @@ show_poller(uint8_t current_page)
|
||||
if (pollers[poller_number]->period_ticks != 0) {
|
||||
print_left(poller_win, 4, 28, POLLER_WIN_WIDTH, "Period:", COLOR_PAIR(5));
|
||||
get_time_str(g_pollers_history[poller_number].period_ticks, poller_period);
|
||||
- mvwprintw(poller_win, 4, POLLER_WIN_FIRST_COL + 23, poller_period);
|
||||
+ mvwprintw(poller_win, 4, POLLER_WIN_FIRST_COL + 23, "%s", poller_period);
|
||||
}
|
||||
mvwhline(poller_win, 5, 1, ACS_HLINE, POLLER_WIN_WIDTH - 2);
|
||||
print_in_middle(poller_win, 6, 1, POLLER_WIN_WIDTH - 7, "Status:", COLOR_PAIR(5));
|
||||
@@ -2374,13 +2374,13 @@ show_stats(void)
|
||||
time_last = time_now.tv_sec;
|
||||
rc = get_data();
|
||||
if (rc) {
|
||||
- mvprintw(g_max_row - 1, g_max_col - strlen(refresh_error) - 2, refresh_error);
|
||||
+ mvprintw(g_max_row - 1, g_max_col - strlen(refresh_error) - 2, "%s", refresh_error);
|
||||
}
|
||||
|
||||
max_pages = refresh_tab(active_tab, current_page);
|
||||
|
||||
snprintf(current_page_str, CURRENT_PAGE_STR_LEN - 1, "Page: %d/%d", current_page + 1, max_pages);
|
||||
- mvprintw(g_max_row - 1, 1, current_page_str);
|
||||
+ mvprintw(g_max_row - 1, 1, "%s", current_page_str);
|
||||
|
||||
free_data();
|
||||
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@ -1,80 +0,0 @@
|
||||
From f72cab94dd35d7b45ec5a4f35967adf3184ca616 Mon Sep 17 00:00:00 2001
|
||||
From: Alexey Marchuk <alexeymar@mellanox.com>
|
||||
Date: Mon, 15 Nov 2021 11:01:14 +0300
|
||||
Subject: [PATCH] lib/vhost: Fix compilation with dpdk 21.11
|
||||
|
||||
Structure vhost_device_ops was renamed to
|
||||
rte_vhost_device_ops
|
||||
|
||||
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
|
||||
Change-Id: Ie9601099d47465536500aa37fc113aeae03a8254
|
||||
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10223
|
||||
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
|
||||
Community-CI: Mellanox Build Bot
|
||||
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
|
||||
Reviewed-by: John Kariuki <John.K.Kariuki@intel.com>
|
||||
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
|
||||
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
|
||||
---
|
||||
lib/vhost/rte_vhost_compat.c | 5 +++++
|
||||
test/unit/lib/vhost/vhost.c/vhost_ut.c | 7 +++++++
|
||||
2 files changed, 12 insertions(+)
|
||||
|
||||
diff --git a/lib/vhost/rte_vhost_compat.c b/lib/vhost/rte_vhost_compat.c
|
||||
index 3c9f691883a..08574cfad07 100644
|
||||
--- a/lib/vhost/rte_vhost_compat.c
|
||||
+++ b/lib/vhost/rte_vhost_compat.c
|
||||
@@ -3,6 +3,7 @@
|
||||
*
|
||||
* Copyright (c) Intel Corporation.
|
||||
* All rights reserved.
|
||||
+ * Copyright (c) 2021 Mellanox Technologies LTD. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@@ -134,7 +135,11 @@ destroy_connection(int vid)
|
||||
vhost_destroy_connection_cb(vid);
|
||||
}
|
||||
|
||||
+#if RTE_VERSION >= RTE_VERSION_NUM(21, 11, 0, 0)
|
||||
+static const struct rte_vhost_device_ops g_spdk_vhost_ops = {
|
||||
+#else
|
||||
static const struct vhost_device_ops g_spdk_vhost_ops = {
|
||||
+#endif
|
||||
.new_device = start_device,
|
||||
.destroy_device = stop_device,
|
||||
.new_connection = new_connection,
|
||||
diff --git a/test/unit/lib/vhost/vhost.c/vhost_ut.c b/test/unit/lib/vhost/vhost.c/vhost_ut.c
|
||||
index df1c32d28e6..e62da334688 100644
|
||||
--- a/test/unit/lib/vhost/vhost.c/vhost_ut.c
|
||||
+++ b/test/unit/lib/vhost/vhost.c/vhost_ut.c
|
||||
@@ -3,6 +3,7 @@
|
||||
*
|
||||
* Copyright (c) Intel Corporation.
|
||||
* All rights reserved.
|
||||
+ * Copyright (c) 2021 Mellanox Technologies LTD. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@@ -41,6 +42,7 @@
|
||||
#include "unit/lib/json_mock.c"
|
||||
|
||||
#include "vhost/vhost.c"
|
||||
+#include <rte_version.h>
|
||||
|
||||
DEFINE_STUB(rte_vhost_set_vring_base, int, (int vid, uint16_t queue_id,
|
||||
uint16_t last_avail_idx, uint16_t last_used_idx), 0);
|
||||
@@ -65,8 +67,13 @@ DEFINE_STUB(rte_vhost_enable_guest_notification, int,
|
||||
(int vid, uint16_t queue_id, int enable), 0);
|
||||
DEFINE_STUB(rte_vhost_get_ifname, int, (int vid, char *buf, size_t len), 0);
|
||||
DEFINE_STUB(rte_vhost_driver_start, int, (const char *name), 0);
|
||||
+#if RTE_VERSION >= RTE_VERSION_NUM(21, 11, 0, 0)
|
||||
+DEFINE_STUB(rte_vhost_driver_callback_register, int,
|
||||
+ (const char *path, struct rte_vhost_device_ops const *const ops), 0);
|
||||
+#else
|
||||
DEFINE_STUB(rte_vhost_driver_callback_register, int,
|
||||
(const char *path, struct vhost_device_ops const *const ops), 0);
|
||||
+#endif
|
||||
DEFINE_STUB(rte_vhost_driver_disable_features, int, (const char *path, uint64_t features), 0);
|
||||
DEFINE_STUB(rte_vhost_driver_set_features, int, (const char *path, uint64_t features), 0);
|
||||
DEFINE_STUB(rte_vhost_driver_register, int, (const char *path, uint64_t flags), 0);
|
||||
94
0030-ut-rdma-Fix-GCC-10.2.0-warning.patch
Normal file
94
0030-ut-rdma-Fix-GCC-10.2.0-warning.patch
Normal file
@ -0,0 +1,94 @@
|
||||
From e0fcf99b6021e98fb5f6580fba89d5fb4276946a Mon Sep 17 00:00:00 2001
|
||||
From: Alexey Marchuk <alexeymar@mellanox.com>
|
||||
Date: Wed, 14 Apr 2021 11:27:38 +0300
|
||||
Subject: [PATCH] ut/rdma: Fix GCC 10.2.0 warning
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
rdma_ut.c: In function ‘test_spdk_nvmf_rdma_request_parse_sgl_with_md’:
|
||||
rdma_ut.c:1152:54: warning: array subscript 10 is outside array bounds of ‘struct spdk_nvmf_rdma_request_data[1]’ [-Warray-bounds]
|
||||
1152 | aligned_buffer = (void *)((uintptr_t)((char *)&data + NVMF_DATA_BUFFER_MASK) &
|
||||
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
|
||||
rdma_ut.c:834:37: note: while referencing ‘data’
|
||||
834 | struct spdk_nvmf_rdma_request_data data;
|
||||
| ^~~~
|
||||
|
||||
The fix is to use array instead of spdk_nvmf_rdma_request_data
|
||||
structure
|
||||
|
||||
Change-Id: I81bd311d26037dcb9340d85abcb4ea45b20a5171
|
||||
Reported-by: G.Balaji <gbalajieie@gmail.com>
|
||||
Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
|
||||
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7365
|
||||
Community-CI: Broadcom CI
|
||||
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
|
||||
Reviewed-by: <dongx.yi@intel.com>
|
||||
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
|
||||
Reviewed-by: Jim Harris <james.r.harris@intel.com>
|
||||
---
|
||||
test/unit/lib/nvmf/rdma.c/rdma_ut.c | 23 ++++++++++++-----------
|
||||
1 file changed, 12 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/test/unit/lib/nvmf/rdma.c/rdma_ut.c b/test/unit/lib/nvmf/rdma.c/rdma_ut.c
|
||||
index 8674f52..eb46a4c 100644
|
||||
--- a/test/unit/lib/nvmf/rdma.c/rdma_ut.c
|
||||
+++ b/test/unit/lib/nvmf/rdma.c/rdma_ut.c
|
||||
@@ -836,7 +836,8 @@ test_spdk_nvmf_rdma_request_parse_sgl_with_md(void)
|
||||
union nvmf_h2c_msg cmd;
|
||||
struct spdk_nvme_sgl_descriptor *sgl;
|
||||
struct spdk_nvme_sgl_descriptor sgl_desc[SPDK_NVMF_MAX_SGL_ENTRIES] = {{0}};
|
||||
- struct spdk_nvmf_rdma_request_data data;
|
||||
+ char data_buffer[8192];
|
||||
+ struct spdk_nvmf_rdma_request_data *data = (struct spdk_nvmf_rdma_request_data *)data_buffer;
|
||||
char data2_buffer[8192];
|
||||
struct spdk_nvmf_rdma_request_data *data2 = (struct spdk_nvmf_rdma_request_data *)data2_buffer;
|
||||
const uint32_t data_bs = 512;
|
||||
@@ -844,7 +845,7 @@ test_spdk_nvmf_rdma_request_parse_sgl_with_md(void)
|
||||
int rc, i;
|
||||
void *aligned_buffer;
|
||||
|
||||
- data.wr.sg_list = data.sgl;
|
||||
+ data->wr.sg_list = data->sgl;
|
||||
STAILQ_INIT(&group.group.buf_cache);
|
||||
group.group.buf_cache_size = 0;
|
||||
group.group.buf_cache_count = 0;
|
||||
@@ -1153,8 +1154,8 @@ test_spdk_nvmf_rdma_request_parse_sgl_with_md(void)
|
||||
sgl->unkeyed.subtype = SPDK_NVME_SGL_SUBTYPE_OFFSET;
|
||||
sgl->address = 0;
|
||||
rdma_req.recv->buf = (void *)&sgl_desc;
|
||||
- MOCK_SET(spdk_mempool_get, &data);
|
||||
- aligned_buffer = (void *)((uintptr_t)((char *)&data + NVMF_DATA_BUFFER_MASK) &
|
||||
+ MOCK_SET(spdk_mempool_get, data_buffer);
|
||||
+ aligned_buffer = (void *)((uintptr_t)(data_buffer + NVMF_DATA_BUFFER_MASK) &
|
||||
~NVMF_DATA_BUFFER_MASK);
|
||||
|
||||
/* part 1: 2 segments each with 1 wr. io_unit_size is aligned with data_bs + md_size */
|
||||
@@ -1190,17 +1191,17 @@ test_spdk_nvmf_rdma_request_parse_sgl_with_md(void)
|
||||
|
||||
CU_ASSERT(rdma_req.data.wr.wr.rdma.rkey == 0x44);
|
||||
CU_ASSERT(rdma_req.data.wr.wr.rdma.remote_addr == 0x4000);
|
||||
- CU_ASSERT(rdma_req.data.wr.next == &data.wr);
|
||||
- CU_ASSERT(data.wr.wr.rdma.rkey == 0x44);
|
||||
- CU_ASSERT(data.wr.wr.rdma.remote_addr == 0x4000 + data_bs * 4);
|
||||
- CU_ASSERT(data.wr.num_sge == 4);
|
||||
+ CU_ASSERT(rdma_req.data.wr.next == &data->wr);
|
||||
+ CU_ASSERT(data->wr.wr.rdma.rkey == 0x44);
|
||||
+ CU_ASSERT(data->wr.wr.rdma.remote_addr == 0x4000 + data_bs * 4);
|
||||
+ CU_ASSERT(data->wr.num_sge == 4);
|
||||
for (i = 0; i < 4; ++i) {
|
||||
- CU_ASSERT(data.wr.sg_list[i].addr == (uintptr_t)((unsigned char *)aligned_buffer) + i *
|
||||
+ CU_ASSERT(data->wr.sg_list[i].addr == (uintptr_t)((unsigned char *)aligned_buffer) + i *
|
||||
(data_bs + md_size));
|
||||
- CU_ASSERT(data.wr.sg_list[i].length == data_bs);
|
||||
+ CU_ASSERT(data->wr.sg_list[i].length == data_bs);
|
||||
}
|
||||
|
||||
- CU_ASSERT(data.wr.next == &rdma_req.rsp.wr);
|
||||
+ CU_ASSERT(data->wr.next == &rdma_req.rsp.wr);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@ -0,0 +1,80 @@
|
||||
From 253cca4fc3a89c38e79d2e940c5a0b7bb082afcc Mon Sep 17 00:00:00 2001
|
||||
From: Zhanghongtao2417 <651380626@qq.com>
|
||||
Date: Fri, 26 Apr 2024 22:01:25 +0800
|
||||
Subject: [PATCH] nvme/cuse: Add ctrlr_lock for cuse register and unregister
|
||||
|
||||
conflicts:
|
||||
lib/nvme/nvme_io_msg.c nvme_io_msg_ctrlr_update
|
||||
|
||||
spdk_nvme_cuse_unregister and spdk_nvme_ctrlr_process_admin_completions
|
||||
running at the same time, concurrently operate external_io_msgs.
|
||||
So we add locks to protect.
|
||||
|
||||
Fixes #3353
|
||||
|
||||
Change-Id: Id5176975676c29a475e8e2a0d7c93e44646c00dc
|
||||
Signed-off-by: Zhanghongtao2417 <651380626@qq.com>
|
||||
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/22927
|
||||
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
|
||||
Community-CI: Mellanox Build Bot
|
||||
Reviewed-by: Jim Harris <jim.harris@samsung.com>
|
||||
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
|
||||
|
||||
---
|
||||
lib/nvme/nvme_io_msg.c | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/lib/nvme/nvme_io_msg.c b/lib/nvme/nvme_io_msg.c
|
||||
index fb5aec3..d74736c 100644
|
||||
--- a/lib/nvme/nvme_io_msg.c
|
||||
+++ b/lib/nvme/nvme_io_msg.c
|
||||
@@ -130,7 +130,9 @@ nvme_io_msg_ctrlr_register(struct spdk_nvme_ctrlr *ctrlr,
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
+ nvme_robust_mutex_lock(&ctrlr->ctrlr_lock);
|
||||
if (nvme_io_msg_is_producer_registered(ctrlr, io_msg_producer)) {
|
||||
+ nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
|
||||
return -EEXIST;
|
||||
}
|
||||
|
||||
@@ -148,6 +150,7 @@ nvme_io_msg_ctrlr_register(struct spdk_nvme_ctrlr *ctrlr,
|
||||
ctrlr->external_io_msgs = spdk_ring_create(SPDK_RING_TYPE_MP_SC, 65536, SPDK_ENV_SOCKET_ID_ANY);
|
||||
if (!ctrlr->external_io_msgs) {
|
||||
SPDK_ERRLOG("Unable to allocate memory for message ring\n");
|
||||
+ nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
@@ -156,10 +159,12 @@ nvme_io_msg_ctrlr_register(struct spdk_nvme_ctrlr *ctrlr,
|
||||
SPDK_ERRLOG("spdk_nvme_ctrlr_alloc_io_qpair() failed\n");
|
||||
spdk_ring_free(ctrlr->external_io_msgs);
|
||||
ctrlr->external_io_msgs = NULL;
|
||||
+ nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
STAILQ_INSERT_TAIL(&ctrlr->io_producers, io_msg_producer, link);
|
||||
+ nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -205,7 +210,9 @@ nvme_io_msg_ctrlr_unregister(struct spdk_nvme_ctrlr *ctrlr,
|
||||
{
|
||||
assert(io_msg_producer != NULL);
|
||||
|
||||
+ nvme_robust_mutex_lock(&ctrlr->ctrlr_lock);
|
||||
if (!nvme_io_msg_is_producer_registered(ctrlr, io_msg_producer)) {
|
||||
+ nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -213,4 +220,5 @@ nvme_io_msg_ctrlr_unregister(struct spdk_nvme_ctrlr *ctrlr,
|
||||
if (STAILQ_EMPTY(&ctrlr->io_producers)) {
|
||||
nvme_io_msg_ctrlr_detach(ctrlr);
|
||||
}
|
||||
+ nvme_robust_mutex_unlock(&ctrlr->ctrlr_lock);
|
||||
}
|
||||
--
|
||||
2.27.0
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
From 686dcd88c2e4147ec5731647c569d8ef4c7064b5 Mon Sep 17 00:00:00 2001
|
||||
From: Gal Hammer <gal.hammer@huawei.com>
|
||||
Date: Tue, 2 Jul 2024 14:28:06 +0800
|
||||
Subject: [PATCH] scripts: Do msr existence check only on x86_64 machines
|
||||
|
||||
aarch64 doesn't have a msr module (DPDK acquires the TSR rate elsewhere).
|
||||
|
||||
Signed-off-by: Gal Hammer <gal.hammer@huawei.com>
|
||||
Signed-off-by: Shai Fultheim <shai.fultheim@huawei.com>
|
||||
Change-Id: Ib9795141a78436959853ab5548ae49f024344b25
|
||||
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12354
|
||||
Reviewed-by: Jim Harris <james.r.harris@intel.com>
|
||||
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
|
||||
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
|
||||
Community-CI: Mellanox Build Bot
|
||||
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
|
||||
---
|
||||
scripts/setup.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/scripts/setup.sh b/scripts/setup.sh
|
||||
index 1c5024a..e753cb1 100755
|
||||
--- a/scripts/setup.sh
|
||||
+++ b/scripts/setup.sh
|
||||
@@ -507,7 +507,7 @@ function configure_linux() {
|
||||
fi
|
||||
fi
|
||||
|
||||
- if [ ! -f /dev/cpu/0/msr ]; then
|
||||
+ if [ $(uname -i) == "x86_64" ] && [ ! -e /dev/cpu/0/msr ]; then
|
||||
# Some distros build msr as a module. Make sure it's loaded to ensure
|
||||
# DPDK can easily figure out the TSC rate rather than relying on 100ms
|
||||
# sleeps.
|
||||
--
|
||||
2.33.0
|
||||
|
||||
33
spdk.spec
33
spdk.spec
@ -4,7 +4,7 @@
|
||||
|
||||
Name: spdk
|
||||
Version: 21.01
|
||||
Release: 7
|
||||
Release: 10
|
||||
Summary: Set of libraries and utilities for high performance user-mode storage
|
||||
License: BSD and MIT
|
||||
URL: http://spdk.io
|
||||
@ -37,7 +37,10 @@ Patch25: 0025-nvmf-fix-fd-leakage-problem-in-nvmf_vfio_user_listen.patch
|
||||
Patch26: 0026-posix-set-fd-to-1-after-close-fd-in-posix_sock_creat.patch
|
||||
Patch27: 0027-spdk_top-check-return-value-of-strdup-in-store_last_.patch
|
||||
Patch28: 0028-uring-set-fd-to-1-after-close-fd-in-uring_sock_creat.patch
|
||||
Patch29: 0029-lib-vhost-Fix-compilation-with-dpdk-21.11.patch
|
||||
Patch29: 0029-Fix-build-warning.patch
|
||||
Patch30: 0030-ut-rdma-Fix-GCC-10.2.0-warning.patch
|
||||
Patch31: 0031-backport-Add-ctrlr_lock-for-cuse-register-and-unregister.patch
|
||||
Patch32: 0032-scripts-Do-msr-existence-check-only-on-x86_64-machin.patch
|
||||
|
||||
%define package_version %{version}-%{release}
|
||||
|
||||
@ -55,15 +58,21 @@ Patch29: 0029-lib-vhost-Fix-compilation-with-dpdk-21.11.patch
|
||||
ExclusiveArch: x86_64 aarch64
|
||||
|
||||
BuildRequires: gcc gcc-c++ make
|
||||
BuildRequires: dpdk-devel, numactl-devel, ncurses-devel
|
||||
BuildRequires: dpdk-devel >= 19.11, numactl-devel, ncurses-devel
|
||||
BuildRequires: libiscsi-devel, libaio-devel, openssl-devel, libuuid-devel
|
||||
BuildRequires: libibverbs-devel, librdmacm-devel
|
||||
%if %{with doc}
|
||||
BuildRequires: doxygen mscgen graphviz
|
||||
%endif
|
||||
|
||||
%ifarch aarch64
|
||||
%global config arm64-armv8a-linux-gcc
|
||||
%else
|
||||
%global config x86_64-native-linux-gcc
|
||||
%endif
|
||||
|
||||
# Install dependencies
|
||||
Requires: dpdk >= 21.11, numactl-libs, openssl-libs
|
||||
Requires: dpdk >= 19.11, numactl-libs, openssl-libs
|
||||
Requires: libiscsi, libaio, libuuid
|
||||
# NVMe over Fabrics
|
||||
Requires: librdmacm, librdmacm
|
||||
@ -120,7 +129,7 @@ BuildArch: noarch
|
||||
--disable-unit-tests \
|
||||
--without-crypto \
|
||||
--without-isal \
|
||||
--with-dpdk=/usr/lib64/dpdk/pmds-22.0 \
|
||||
--with-dpdk=/usr/share/dpdk/%{config} \
|
||||
--without-fio \
|
||||
--with-vhost \
|
||||
--without-pmdk \
|
||||
@ -169,6 +178,7 @@ mkdir -p %{install_docdir}
|
||||
mv doc/output/html/ %{install_docdir}
|
||||
%endif
|
||||
|
||||
%chrpath_delete
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
%postun -p /sbin/ldconfig
|
||||
@ -204,8 +214,17 @@ mv doc/output/html/ %{install_docdir}
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon Oct 16 2023 chenyaqiang <chengyaqiang@huawei.com> - 21.01-7
|
||||
- fix build failure caused by dpdk upgrade
|
||||
* Mon Jul 8 2024 cenhuilin <cenhuilin@kylinos.cn> - 21.01-10
|
||||
- scripts: Do msr existence check only on x86_64 machines
|
||||
|
||||
* Thu Jul 4 2024 kouwenqi <kouwenqi@kylinos.cn> - 21.01-9
|
||||
- Add ctrlr_lock for cuse register and unregister
|
||||
|
||||
* Fri Mar 15 2024 wangxiaomeng <wangxiaomeng@kylinos.cn> - 21.01-8
|
||||
- Fix build warning
|
||||
|
||||
* Sat Nov 25 2023 Hongtao Zhang <zhanghongtao22@huawei.com> - 21.01-7
|
||||
- Fix build check rpaths error
|
||||
|
||||
* Fri Feb 03 2023 Hongtao Zhang <zhanghongtao22@huawei.com> - 21.01-6
|
||||
- Add setup.sh scripts during installation
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user