event: add disable_signal_handlers to the spdk_app_opts struct
Currently, there is no way to prevent spdk_app_start() from calling app_setup_signal_handlers() and setting SPDK's signal handlers. We'd like to use our own set of signal handlers, therefore this patch adds a flag to the spdk_app_opts struct that disables this behaviour. Signed-off-by: Andreas Economides <andreas.economides@nutanix.com> Change-Id: I61d7cd66527d819fd5f687d5cc8a03be4fe10a6a Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9380 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Ziye Yang <ziye.yang@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
5930558212
commit
a89d15e46a
@ -44,6 +44,10 @@ SoC may be running SPDK on the SoC. That SoC has its own local memory, but SPDK
|
|||||||
devices that can also access the host system memory. This library provides infrastructure to enumerate
|
devices that can also access the host system memory. This library provides infrastructure to enumerate
|
||||||
the memory domains and request hardware perform DMA transfers between them.
|
the memory domains and request hardware perform DMA transfers between them.
|
||||||
|
|
||||||
|
### event
|
||||||
|
|
||||||
|
Added the `disable_signal_handlers` flag to the `spdk_app_opts` struct.
|
||||||
|
|
||||||
### log
|
### log
|
||||||
|
|
||||||
Added API `spdk_log_to_syslog_level` to return syslog level based on SPDK's
|
Added API `spdk_log_to_syslog_level` to return syslog level based on SPDK's
|
||||||
|
@ -137,6 +137,16 @@ struct spdk_app_opts {
|
|||||||
* After that, new added fields should be put after opts_size.
|
* After that, new added fields should be put after opts_size.
|
||||||
*/
|
*/
|
||||||
size_t opts_size;
|
size_t opts_size;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disable default signal handlers.
|
||||||
|
* If set to `true`, the shutdown process is not started implicitly by
|
||||||
|
* process signals, hence the application is responsible for calling
|
||||||
|
* spdk_app_start_shutdown().
|
||||||
|
*
|
||||||
|
* Default is `false`.
|
||||||
|
*/
|
||||||
|
bool disable_signal_handlers;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -34,8 +34,8 @@
|
|||||||
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
|
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
|
||||||
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
|
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
|
||||||
|
|
||||||
SO_VER := 9
|
SO_VER := 10
|
||||||
SO_MINOR := 1
|
SO_MINOR := 0
|
||||||
|
|
||||||
CFLAGS += $(ENV_CFLAGS)
|
CFLAGS += $(ENV_CFLAGS)
|
||||||
|
|
||||||
|
@ -224,6 +224,7 @@ spdk_app_opts_init(struct spdk_app_opts *opts, size_t opts_size)
|
|||||||
SET_FIELD(rpc_addr, SPDK_DEFAULT_RPC_ADDR);
|
SET_FIELD(rpc_addr, SPDK_DEFAULT_RPC_ADDR);
|
||||||
SET_FIELD(num_entries, SPDK_APP_DEFAULT_NUM_TRACE_ENTRIES);
|
SET_FIELD(num_entries, SPDK_APP_DEFAULT_NUM_TRACE_ENTRIES);
|
||||||
SET_FIELD(delay_subsystem_init, false);
|
SET_FIELD(delay_subsystem_init, false);
|
||||||
|
SET_FIELD(disable_signal_handlers, false);
|
||||||
#undef SET_FIELD
|
#undef SET_FIELD
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -460,10 +461,11 @@ app_copy_opts(struct spdk_app_opts *opts, struct spdk_app_opts *opts_user, size_
|
|||||||
SET_FIELD(env_context);
|
SET_FIELD(env_context);
|
||||||
SET_FIELD(log);
|
SET_FIELD(log);
|
||||||
SET_FIELD(base_virtaddr);
|
SET_FIELD(base_virtaddr);
|
||||||
|
SET_FIELD(disable_signal_handlers);
|
||||||
|
|
||||||
/* You should not remove this statement, but need to update the assert statement
|
/* You should not remove this statement, but need to update the assert statement
|
||||||
* if you add a new field, and also add a corresponding SET_FIELD statement */
|
* if you add a new field, and also add a corresponding SET_FIELD statement */
|
||||||
SPDK_STATIC_ASSERT(sizeof(struct spdk_app_opts) == 184, "Incorrect size");
|
SPDK_STATIC_ASSERT(sizeof(struct spdk_app_opts) == 192, "Incorrect size");
|
||||||
|
|
||||||
#undef SET_FIELD
|
#undef SET_FIELD
|
||||||
}
|
}
|
||||||
@ -569,7 +571,7 @@ spdk_app_start(struct spdk_app_opts *opts_user, spdk_msg_fn start_fn,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (app_setup_signal_handlers(opts) != 0) {
|
if (!opts->disable_signal_handlers && app_setup_signal_handlers(opts) != 0) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user