diff --git a/app/iscsi_tgt/Makefile b/app/iscsi_tgt/Makefile index d7ad6ebc3..a4bac7bc5 100644 --- a/app/iscsi_tgt/Makefile +++ b/app/iscsi_tgt/Makefile @@ -46,7 +46,7 @@ C_SRCS := iscsi_tgt.c SPDK_LIB_LIST = $(ALL_MODULES_LIST) SPDK_LIB_LIST += event_bdev event_copy event_iscsi event_net event_scsi event SPDK_LIB_LIST += jsonrpc json rpc bdev_rpc bdev iscsi scsi copy trace conf -SPDK_LIB_LIST += thread util log log_rpc trace_rpc app_rpc net sock +SPDK_LIB_LIST += thread util log log_rpc trace_rpc app_rpc net sock notify ifeq ($(OS),Linux) SPDK_LIB_LIST += event_nbd nbd diff --git a/app/nvmf_tgt/Makefile b/app/nvmf_tgt/Makefile index 17724e1a2..d7beec234 100644 --- a/app/nvmf_tgt/Makefile +++ b/app/nvmf_tgt/Makefile @@ -42,7 +42,7 @@ C_SRCS := nvmf_main.c SPDK_LIB_LIST = $(ALL_MODULES_LIST) SPDK_LIB_LIST += event_bdev event_copy event_nvmf event_net SPDK_LIB_LIST += nvmf event log trace conf thread util bdev copy rpc jsonrpc json net sock -SPDK_LIB_LIST += app_rpc log_rpc trace_rpc bdev_rpc +SPDK_LIB_LIST += app_rpc log_rpc trace_rpc bdev_rpc notify ifeq ($(OS),Linux) SPDK_LIB_LIST += event_nbd nbd diff --git a/app/spdk_tgt/Makefile b/app/spdk_tgt/Makefile index 388f77676..88d947e12 100644 --- a/app/spdk_tgt/Makefile +++ b/app/spdk_tgt/Makefile @@ -52,7 +52,7 @@ endif SPDK_LIB_LIST += event_bdev event_copy event_iscsi event_net event_scsi event_nvmf event SPDK_LIB_LIST += nvmf trace log conf thread util bdev iscsi scsi copy rpc jsonrpc json -SPDK_LIB_LIST += app_rpc log_rpc trace_rpc bdev_rpc net sock +SPDK_LIB_LIST += app_rpc log_rpc trace_rpc bdev_rpc net sock notify ifeq ($(OS),Linux) SPDK_LIB_LIST += event_nbd nbd diff --git a/app/vhost/Makefile b/app/vhost/Makefile index 60c51c954..41817a2dd 100644 --- a/app/vhost/Makefile +++ b/app/vhost/Makefile @@ -49,6 +49,6 @@ endif SPDK_LIB_LIST += event_bdev event_copy event_net event_scsi event SPDK_LIB_LIST += jsonrpc json rpc bdev_rpc bdev scsi copy trace conf SPDK_LIB_LIST += thread util log log_rpc trace_rpc app_rpc -SPDK_LIB_LIST += event_nbd nbd net sock +SPDK_LIB_LIST += event_nbd nbd net sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/examples/bdev/fio_plugin/Makefile b/examples/bdev/fio_plugin/Makefile index 07713e4c1..d93e5e101 100644 --- a/examples/bdev/fio_plugin/Makefile +++ b/examples/bdev/fio_plugin/Makefile @@ -43,6 +43,6 @@ CFLAGS += -I$(CONFIG_FIO_SOURCE_DIR) LDFLAGS += -shared -rdynamic -Wl,-z,nodelete SPDK_LIB_LIST = $(ALL_MODULES_LIST) -SPDK_LIB_LIST += thread util bdev conf copy rpc jsonrpc json log sock trace +SPDK_LIB_LIST += thread util bdev conf copy rpc jsonrpc json log sock trace notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/examples/bdev/hello_world/Makefile b/examples/bdev/hello_world/Makefile index 1f556b67f..3b49f4e47 100644 --- a/examples/bdev/hello_world/Makefile +++ b/examples/bdev/hello_world/Makefile @@ -39,6 +39,6 @@ C_SRCS := hello_bdev.c SPDK_LIB_LIST = $(ALL_MODULES_LIST) SPDK_LIB_LIST += event_bdev event_copy -SPDK_LIB_LIST += bdev copy event thread util conf trace log jsonrpc json rpc sock +SPDK_LIB_LIST += bdev copy event thread util conf trace log jsonrpc json rpc sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/examples/blob/cli/Makefile b/examples/blob/cli/Makefile index 34c49ea9b..525e4211d 100644 --- a/examples/blob/cli/Makefile +++ b/examples/blob/cli/Makefile @@ -41,6 +41,6 @@ C_SRCS := blobcli.c SPDK_LIB_LIST = $(filter-out bdev_lvol,$(ALL_MODULES_LIST)) SPDK_LIB_LIST += event_bdev event_copy SPDK_LIB_LIST += bdev copy event thread util conf trace \ - log jsonrpc json rpc sock + log jsonrpc json rpc sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/examples/blob/hello_world/Makefile b/examples/blob/hello_world/Makefile index 1455b0aa3..a876201f7 100644 --- a/examples/blob/hello_world/Makefile +++ b/examples/blob/hello_world/Makefile @@ -40,6 +40,6 @@ C_SRCS := hello_blob.c SPDK_LIB_LIST = $(ALL_MODULES_LIST) SPDK_LIB_LIST += event_bdev event_copy SPDK_LIB_LIST += bdev copy event thread util conf trace \ - log jsonrpc json rpc sock + log jsonrpc json rpc sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/examples/sock/hello_world/Makefile b/examples/sock/hello_world/Makefile index e8915d7fb..43ce98e0e 100644 --- a/examples/sock/hello_world/Makefile +++ b/examples/sock/hello_world/Makefile @@ -38,6 +38,6 @@ APP = hello_sock C_SRCS := hello_sock.c SPDK_LIB_LIST = $(SOCK_MODULES_LIST) -SPDK_LIB_LIST += event thread util conf trace log jsonrpc json rpc sock +SPDK_LIB_LIST += event thread util conf trace log jsonrpc json rpc sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/include/spdk/notify.h b/include/spdk/notify.h new file mode 100644 index 000000000..fbf502151 --- /dev/null +++ b/include/spdk/notify.h @@ -0,0 +1,128 @@ +/*- + * BSD LICENSE + * + * Copyright (c) Intel Corporation. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef SPDK_NOTIFY_H +#define SPDK_NOTIFY_H + +#include "spdk/stdinc.h" +#include "spdk/json.h" +#include "spdk/queue.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * Opaque event type. + */ +struct spdk_notify_type; + +typedef int (*spdk_notify_get_type_cb)(const struct spdk_notify_type *type, void *ctx); + +#define SPDK_NOTIFY_MAX_NAME_SIZE 128 +#define SPDK_NOTIFY_MAX_CTX_SIZE 128 + +struct spdk_notify_event { + char type[SPDK_NOTIFY_MAX_NAME_SIZE]; + char ctx[SPDK_NOTIFY_MAX_CTX_SIZE]; +}; + +/** + * Callback type for event enumeration. + * + * \param idx Event index + * \param event Event data + * \param ctx User context + * \return Non zero to break iteration. + */ +typedef int (*spdk_notify_get_event_cb)(uint64_t idx, const struct spdk_notify_event *event, + void *ctx); + +/** + * Register \c type as new notification type. + * + * The \c type must be valid through whole program lifetime (chance being a global variable). + * + * \note This function is thread safe. + * + * \param type New notification type to register. + * \return registered notification type or NULL on failure. + */ +struct spdk_notify_type *spdk_notify_type_register(const char *type); + +/** + * Return name of the notification type. + * + * \param type Notification type we are talking about. + * \return Name of notification type. + */ +const char *spdk_notify_type_get_name(const struct spdk_notify_type *type); + +/** + * Call cb_fn for all event types. + * + * \note Whole function call is under lock so user callback should not sleep. + * \param cb_fn + * \param ctx + */ +void spdk_notify_get_types(spdk_notify_get_type_cb cb_fn, void *ctx); + +/** + * Send given notification. + * + * \param type Notification type + * \param ctx Notification context + * + * \return Event index. + */ +uint64_t spdk_notify_send(const char *type, const char *ctx); + +/** + * Call cb_fn with events from given range. + * + * \note Whole function call is under lock so user callback should not sleep. + * + * \param start_idx First event index + * \param cb_fn User callback function. Return non-zero to break iteration. + * \param max Maximum number of invocations of user calback function. + * \param ctx User context + * \return Number of user callback invocations + */ +uint64_t spdk_notify_get_events(uint64_t start_idx, uint64_t max, spdk_notify_get_event_cb cb_fn, + void *ctx); + +#ifdef __cplusplus +} +#endif + +#endif /* SPDK_NOTIFY_H */ diff --git a/lib/Makefile b/lib/Makefile index 40c2df08d..5a6d374a0 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -36,7 +36,7 @@ include $(SPDK_ROOT_DIR)/mk/spdk.common.mk DIRS-y += bdev blob blobfs conf copy event json jsonrpc \ log lvol net rpc sock thread trace util nvme nvmf scsi ioat \ - ut_mock iscsi + ut_mock iscsi notify ifeq ($(OS),Linux) DIRS-y += nbd DIRS-$(CONFIG_VHOST) += vhost @@ -54,6 +54,7 @@ DIRS-y += $(ENV_NAME) endif DEPDIRS-iscsi := scsi +DEPDIRS-bdev := notify .PHONY: all clean $(DIRS-y) diff --git a/lib/notify/Makefile b/lib/notify/Makefile new file mode 100644 index 000000000..987542594 --- /dev/null +++ b/lib/notify/Makefile @@ -0,0 +1,40 @@ +# +# BSD LICENSE +# +# Copyright (c) Intel Corporation. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# * Neither the name of Intel Corporation nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..) +include $(SPDK_ROOT_DIR)/mk/spdk.common.mk + +C_SRCS = notify.c +LIBNAME = notify + +include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk diff --git a/lib/notify/notify.c b/lib/notify/notify.c new file mode 100644 index 000000000..e1a3605ac --- /dev/null +++ b/lib/notify/notify.c @@ -0,0 +1,150 @@ +/*- + * BSD LICENSE + * + * Copyright (c) Intel Corporation. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include + +#include "spdk/stdinc.h" +#include "spdk/util.h" +#include "spdk/queue.h" +#include "spdk/string.h" +#include "spdk/log.h" + +#include "spdk/notify.h" + +#define SPDK_NOTIFY_MAX_EVENTS 1024 + +struct spdk_notify_type { + char name[SPDK_NOTIFY_MAX_NAME_SIZE]; + TAILQ_ENTRY(spdk_notify_type) tailq; +}; + +pthread_mutex_t g_events_lock = PTHREAD_MUTEX_INITIALIZER; +static struct spdk_notify_event g_events[SPDK_NOTIFY_MAX_EVENTS]; +static uint64_t g_events_head; + +static TAILQ_HEAD(, spdk_notify_type) g_notify_types = TAILQ_HEAD_INITIALIZER(g_notify_types); + +struct spdk_notify_type * +spdk_notify_type_register(const char *type) +{ + struct spdk_notify_type *it = NULL; + + if (!type) { + SPDK_ERRLOG("Invalid notification type %p\n", type); + return NULL; + } else if (!type || strlen(type) >= SPDK_NOTIFY_MAX_NAME_SIZE) { + SPDK_ERRLOG("Invalid notification type (add: %p, name: %s)\n", type, + type ? type : "(null)"); + return NULL; + } + + pthread_mutex_lock(&g_events_lock); + TAILQ_FOREACH(it, &g_notify_types, tailq) { + if (strcmp(type, it->name) == 0) { + SPDK_ERRLOG("Notification type '%s' already registered.\n", type); + goto out; + } + } + + it = calloc(1, sizeof(*it)); + if (it == NULL) { + goto out; + } + + snprintf(it->name, sizeof(it->name), "%s", type); + TAILQ_INSERT_TAIL(&g_notify_types, it, tailq); + +out: + pthread_mutex_unlock(&g_events_lock); + return it; +} + +const char * +spdk_notify_type_get_name(const struct spdk_notify_type *type) +{ + return type->name; +} + + +void +spdk_notify_get_types(spdk_notify_get_type_cb cb, void *ctx) +{ + struct spdk_notify_type *it; + + pthread_mutex_lock(&g_events_lock); + TAILQ_FOREACH(it, &g_notify_types, tailq) { + if (cb(it, ctx)) { + break; + } + } + pthread_mutex_unlock(&g_events_lock); +} + +uint64_t +spdk_notify_send(const char *type, const char *ctx) +{ + uint64_t head; + struct spdk_notify_event *ev; + + pthread_mutex_lock(&g_events_lock); + head = g_events_head; + g_events_head++; + + ev = &g_events[head % SPDK_NOTIFY_MAX_EVENTS]; + spdk_strcpy_pad(ev->type, type, sizeof(ev->type), '\0'); + spdk_strcpy_pad(ev->ctx, ctx, sizeof(ev->ctx), '\0'); + pthread_mutex_unlock(&g_events_lock); + + return head; +} + +uint64_t +spdk_notify_get_events(uint64_t start_idx, uint64_t max, spdk_notify_get_event_cb cb_fn, void *ctx) +{ + uint64_t i; + + pthread_mutex_lock(&g_events_lock); + + if (g_events_head > SPDK_NOTIFY_MAX_EVENTS && start_idx < g_events_head - SPDK_NOTIFY_MAX_EVENTS) { + start_idx = g_events_head - SPDK_NOTIFY_MAX_EVENTS; + } + + for (i = 0; start_idx < g_events_head && i < max; start_idx++, i++) { + if (cb_fn(start_idx, &g_events[start_idx % SPDK_NOTIFY_MAX_EVENTS], ctx)) { + break; + } + } + pthread_mutex_unlock(&g_events_lock); + + return i; +} diff --git a/lib/rocksdb/spdk.rocksdb.mk b/lib/rocksdb/spdk.rocksdb.mk index 83c4886ed..7fd743ad3 100644 --- a/lib/rocksdb/spdk.rocksdb.mk +++ b/lib/rocksdb/spdk.rocksdb.mk @@ -55,7 +55,7 @@ endif SPDK_LIB_LIST = $(ALL_MODULES_LIST) SPDK_LIB_LIST += event_bdev event_copy -SPDK_LIB_LIST += bdev copy event util conf trace log jsonrpc json rpc sock thread +SPDK_LIB_LIST += bdev copy event util conf trace log jsonrpc json rpc sock thread notify AM_LINK += $(SPDK_LIB_LINKER_ARGS) $(ENV_LINKER_ARGS) AM_LINK += $(SYS_LIBS) diff --git a/test/app/bdev_svc/Makefile b/test/app/bdev_svc/Makefile index c9a844400..9cf8c5616 100644 --- a/test/app/bdev_svc/Makefile +++ b/test/app/bdev_svc/Makefile @@ -42,7 +42,7 @@ C_SRCS := bdev_svc.c SPDK_LIB_LIST = $(ALL_MODULES_LIST) SPDK_LIB_LIST += event_bdev event_copy SPDK_LIB_LIST += nvmf event log trace conf thread util bdev copy rpc jsonrpc json sock -SPDK_LIB_LIST += app_rpc log_rpc trace_rpc bdev_rpc +SPDK_LIB_LIST += app_rpc log_rpc trace_rpc bdev_rpc notify ifeq ($(OS),Linux) SPDK_LIB_LIST += event_nbd nbd diff --git a/test/app/stub/Makefile b/test/app/stub/Makefile index df989f3f0..d1acbe4f7 100644 --- a/test/app/stub/Makefile +++ b/test/app/stub/Makefile @@ -40,6 +40,6 @@ APP = stub C_SRCS := stub.c SPDK_LIB_LIST = $(SOCK_MODULES_LIST) -SPDK_LIB_LIST += event conf nvme log trace rpc jsonrpc json thread util sock +SPDK_LIB_LIST += event conf nvme log trace rpc jsonrpc json thread util sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/test/bdev/bdevio/Makefile b/test/bdev/bdevio/Makefile index e1870a4ff..f30899682 100644 --- a/test/bdev/bdevio/Makefile +++ b/test/bdev/bdevio/Makefile @@ -41,7 +41,7 @@ C_SRCS := bdevio.c SPDK_LIB_LIST = $(ALL_MODULES_LIST) SPDK_LIB_LIST += event_bdev event_copy -SPDK_LIB_LIST += bdev copy event trace log conf thread util rpc jsonrpc json sock +SPDK_LIB_LIST += bdev copy event trace log conf thread util rpc jsonrpc json sock notify LIBS += -lcunit diff --git a/test/bdev/bdevperf/Makefile b/test/bdev/bdevperf/Makefile index 505f5712a..8a30e875f 100644 --- a/test/bdev/bdevperf/Makefile +++ b/test/bdev/bdevperf/Makefile @@ -41,6 +41,6 @@ C_SRCS := bdevperf.c SPDK_LIB_LIST = $(ALL_MODULES_LIST) SPDK_LIB_LIST += event_bdev event_copy -SPDK_LIB_LIST += bdev copy event trace log conf thread util rpc bdev_rpc jsonrpc json sock +SPDK_LIB_LIST += bdev copy event trace log conf thread util rpc bdev_rpc jsonrpc json sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/test/blobfs/fuse/Makefile b/test/blobfs/fuse/Makefile index 97c5990ba..64af308c2 100644 --- a/test/blobfs/fuse/Makefile +++ b/test/blobfs/fuse/Makefile @@ -42,7 +42,7 @@ C_SRCS := fuse.c SPDK_LIB_LIST = $(ALL_MODULES_LIST) SPDK_LIB_LIST += event_bdev event_copy SPDK_LIB_LIST += bdev copy event thread util conf trace \ - log jsonrpc json rpc sock + log jsonrpc json rpc sock notify LIBS+= -L/usr/local/lib -lfuse3 diff --git a/test/blobfs/mkfs/Makefile b/test/blobfs/mkfs/Makefile index 8e069adcd..27a6167f8 100644 --- a/test/blobfs/mkfs/Makefile +++ b/test/blobfs/mkfs/Makefile @@ -42,6 +42,6 @@ C_SRCS := mkfs.c SPDK_LIB_LIST = $(ALL_MODULES_LIST) SPDK_LIB_LIST += event_bdev event_copy SPDK_LIB_LIST += bdev copy event thread util conf trace \ - log jsonrpc json rpc sock + log jsonrpc json rpc sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/test/event/event_perf/Makefile b/test/event/event_perf/Makefile index 0de3186a4..464709396 100644 --- a/test/event/event_perf/Makefile +++ b/test/event/event_perf/Makefile @@ -37,6 +37,6 @@ include $(SPDK_ROOT_DIR)/mk/spdk.common.mk APP = event_perf C_SRCS := event_perf.c -SPDK_LIB_LIST = event trace conf thread util log rpc jsonrpc json sock +SPDK_LIB_LIST = event trace conf thread util log rpc jsonrpc json sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/test/event/reactor/Makefile b/test/event/reactor/Makefile index 56139d41d..b5d94dcb1 100644 --- a/test/event/reactor/Makefile +++ b/test/event/reactor/Makefile @@ -37,6 +37,6 @@ include $(SPDK_ROOT_DIR)/mk/spdk.common.mk APP = reactor C_SRCS := reactor.c -SPDK_LIB_LIST = event trace conf thread util log rpc jsonrpc json sock +SPDK_LIB_LIST = event trace conf thread util log rpc jsonrpc json sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk diff --git a/test/event/reactor_perf/Makefile b/test/event/reactor_perf/Makefile index ee17711dd..74b56dcf8 100644 --- a/test/event/reactor_perf/Makefile +++ b/test/event/reactor_perf/Makefile @@ -37,6 +37,6 @@ include $(SPDK_ROOT_DIR)/mk/spdk.common.mk APP = reactor_perf C_SRCS := reactor_perf.c -SPDK_LIB_LIST = event trace conf thread util log rpc jsonrpc json sock +SPDK_LIB_LIST = event trace conf thread util log rpc jsonrpc json sock notify include $(SPDK_ROOT_DIR)/mk/spdk.app.mk