There is a way to pause/resume spdk pollers, however there is no way to achieve that using public API for the given target which has a hook behaving similar to pollers. Exposing such functionality can be used for pausing and restoring target pollers during reset, e.g. new commands should not be fetched to assure that all internal resources can be cleared/reinitialized safety. Pausing target poller during the reset will assure that, without need for destroying transport or adding condition statements in IO path. Similar use case might be hitless upgrade. Depending on implementation there might be need that no new command can be submitted when secondary processes are being switched to upgraded versions. Pausing target pollers should be useful in this case. Signed-off-by: Kamuda Szymon <szymon.kamuda@intel.com> Change-Id: I419816552c710c43e02197ebcc20a967fb23b3bd Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15911 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
128 lines
3.7 KiB
Plaintext
128 lines
3.7 KiB
Plaintext
{
|
|
global:
|
|
|
|
# public functions in nvmf.h
|
|
spdk_nvmf_tgt_create;
|
|
spdk_nvmf_tgt_destroy;
|
|
spdk_nvmf_tgt_get_name;
|
|
spdk_nvmf_get_tgt;
|
|
spdk_nvmf_get_first_tgt;
|
|
spdk_nvmf_get_next_tgt;
|
|
spdk_nvmf_tgt_write_config_json;
|
|
spdk_nvmf_listen_opts_init;
|
|
spdk_nvmf_tgt_listen_ext;
|
|
spdk_nvmf_tgt_stop_listen;
|
|
spdk_nvmf_poll_group_create;
|
|
spdk_nvmf_get_optimal_poll_group;
|
|
spdk_nvmf_poll_group_destroy;
|
|
spdk_nvmf_poll_group_add;
|
|
spdk_nvmf_qpair_disconnect;
|
|
spdk_nvmf_qpair_get_peer_trid;
|
|
spdk_nvmf_qpair_get_local_trid;
|
|
spdk_nvmf_qpair_get_listen_trid;
|
|
spdk_nvmf_subsystem_create;
|
|
spdk_nvmf_subsystem_destroy;
|
|
spdk_nvmf_subsystem_start;
|
|
spdk_nvmf_subsystem_stop;
|
|
spdk_nvmf_subsystem_pause;
|
|
spdk_nvmf_subsystem_resume;
|
|
spdk_nvmf_tgt_find_subsystem;
|
|
spdk_nvmf_subsystem_get_first;
|
|
spdk_nvmf_subsystem_get_next;
|
|
spdk_nvmf_subsystem_add_host;
|
|
spdk_nvmf_subsystem_remove_host;
|
|
spdk_nvmf_subsystem_disconnect_host;
|
|
spdk_nvmf_subsystem_set_allow_any_host;
|
|
spdk_nvmf_subsystem_get_allow_any_host;
|
|
spdk_nvmf_subsystem_host_allowed;
|
|
spdk_nvmf_subsystem_get_first_host;
|
|
spdk_nvmf_subsystem_get_next_host;
|
|
spdk_nvmf_host_get_nqn;
|
|
spdk_nvmf_subsystem_add_listener;
|
|
spdk_nvmf_subsystem_remove_listener;
|
|
spdk_nvmf_subsystem_listener_allowed;
|
|
spdk_nvmf_subsystem_get_first_listener;
|
|
spdk_nvmf_subsystem_get_next_listener;
|
|
spdk_nvmf_subsystem_listener_get_trid;
|
|
spdk_nvmf_subsystem_allow_any_listener;
|
|
spdk_nvmf_subsytem_any_listener_allowed;
|
|
spdk_nvmf_ns_opts_get_defaults;
|
|
spdk_nvmf_subsystem_add_ns_ext;
|
|
spdk_nvmf_subsystem_remove_ns;
|
|
spdk_nvmf_subsystem_get_first_ns;
|
|
spdk_nvmf_subsystem_get_next_ns;
|
|
spdk_nvmf_subsystem_get_ns;
|
|
spdk_nvmf_subsystem_get_min_cntlid;
|
|
spdk_nvmf_subsystem_get_max_cntlid;
|
|
spdk_nvmf_subsystem_get_max_namespaces;
|
|
spdk_nvmf_ns_get_id;
|
|
spdk_nvmf_ns_get_bdev;
|
|
spdk_nvmf_ns_get_opts;
|
|
spdk_nvmf_subsystem_get_sn;
|
|
spdk_nvmf_subsystem_set_sn;
|
|
spdk_nvmf_subsystem_get_mn;
|
|
spdk_nvmf_subsystem_set_mn;
|
|
spdk_nvmf_subsystem_get_nqn;
|
|
spdk_nvmf_subsystem_get_type;
|
|
spdk_nvmf_subsystem_get_max_nsid;
|
|
spdk_nvmf_transport_opts_init;
|
|
spdk_nvmf_transport_create;
|
|
spdk_nvmf_transport_destroy;
|
|
spdk_nvmf_tgt_get_transport;
|
|
spdk_nvmf_transport_get_first;
|
|
spdk_nvmf_transport_get_next;
|
|
spdk_nvmf_get_transport_opts;
|
|
spdk_nvmf_get_transport_type;
|
|
spdk_nvmf_get_transport_name;
|
|
spdk_nvmf_tgt_add_transport;
|
|
spdk_nvmf_tgt_pause_polling;
|
|
spdk_nvmf_tgt_resume_polling;
|
|
spdk_nvmf_transport_listen;
|
|
spdk_nvmf_transport_stop_listen;
|
|
spdk_nvmf_transport_stop_listen_async;
|
|
spdk_nvmf_poll_group_dump_stat;
|
|
spdk_nvmf_rdma_init_hooks;
|
|
spdk_nvmf_subsystem_set_ana_reporting;
|
|
|
|
# public functions in nvmf_cmd.h
|
|
spdk_nvmf_ctrlr_identify_ctrlr;
|
|
spdk_nvmf_ctrlr_identify_iocs_specific;
|
|
spdk_nvmf_ctrlr_identify_ns;
|
|
spdk_nvmf_set_custom_admin_cmd_hdlr;
|
|
spdk_nvmf_set_passthru_admin_cmd;
|
|
spdk_nvmf_bdev_ctrlr_nvme_passthru_admin;
|
|
spdk_nvmf_request_get_bdev;
|
|
spdk_nvmf_request_get_ctrlr;
|
|
spdk_nvmf_request_get_subsystem;
|
|
spdk_nvmf_request_get_data;
|
|
spdk_nvmf_request_get_cmd;
|
|
spdk_nvmf_request_get_response;
|
|
spdk_nvmf_request_get_req_to_abort;
|
|
spdk_nvmf_bdev_ctrlr_abort_cmd;
|
|
spdk_nvmf_ns_identify_iocs_specific;
|
|
|
|
# public functions in nvmf_transport.h
|
|
spdk_nvmf_transport_register;
|
|
spdk_nvmf_tgt_new_qpair;
|
|
spdk_nvmf_ctrlr_connect;
|
|
spdk_nvmf_ctrlr_data_init;
|
|
spdk_nvmf_ctrlr_get_regs;
|
|
spdk_nvmf_request_free_buffers;
|
|
spdk_nvmf_request_get_buffers;
|
|
spdk_nvmf_request_get_dif_ctx;
|
|
spdk_nvmf_request_exec_fabrics;
|
|
spdk_nvmf_request_exec;
|
|
spdk_nvmf_request_free;
|
|
spdk_nvmf_request_complete;
|
|
spdk_nvmf_request_zcopy_start;
|
|
spdk_nvmf_request_zcopy_end;
|
|
spdk_nvmf_ctrlr_get_subsystem;
|
|
spdk_nvmf_ctrlr_get_id;
|
|
spdk_nvmf_ctrlr_save_migr_data;
|
|
spdk_nvmf_ctrlr_restore_migr_data;
|
|
spdk_nvmf_req_get_xfer;
|
|
spdk_nvmf_poll_group_remove;
|
|
|
|
local: *;
|
|
};
|