Spdk/lib/bdev/spdk_bdev.map
Shuhei Matsumoto cad6f55e33 bdev: Add spdk_bdev_get_current_qd to measure and return current value
The generic bdev layer has a public API spdk_bdev_get_qd() but its
value is the most recently measured value and it requires qd sampling
to be enabled. We will have bdev modules to want to wait until
all bdev_ios are aborted by a reset. Unfortunately, spdk_bdev_get_qd()
is not suitable for the custom bdev module. Furthermore,
spdk_bdev_channel::io_outstanding is not accessible from bdev modules.
Hence, add a new public API spdk_bdev_get_current_qd().
This function should be used only from the bdev module and it should
be ensured that the bdev is not unregistered during execution.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ica30a8d8fe3264e28f0772a39bdf5f9ba72933e1
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12791
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
2022-09-09 12:55:39 +00:00

172 lines
4.4 KiB
Plaintext

{
global:
# Public functions in bdev.h
spdk_bdev_get_opts;
spdk_bdev_set_opts;
spdk_bdev_wait_for_examine;
spdk_bdev_examine;
spdk_bdev_initialize;
spdk_bdev_finish;
spdk_bdev_subsystem_config_json;
spdk_bdev_get_by_name;
spdk_bdev_get_module_name;
spdk_bdev_first;
spdk_bdev_next;
spdk_bdev_first_leaf;
spdk_bdev_next_leaf;
spdk_for_each_bdev;
spdk_for_each_bdev_leaf;
spdk_bdev_open_ext;
spdk_bdev_close;
spdk_bdev_desc_get_bdev;
spdk_bdev_set_timeout;
spdk_bdev_io_type_supported;
spdk_bdev_dump_info_json;
spdk_bdev_get_name;
spdk_bdev_get_product_name;
spdk_bdev_get_block_size;
spdk_bdev_get_write_unit_size;
spdk_bdev_get_num_blocks;
spdk_bdev_get_qos_rpc_type;
spdk_bdev_get_qos_rate_limits;
spdk_bdev_set_qos_rate_limits;
spdk_bdev_get_buf_align;
spdk_bdev_get_optimal_io_boundary;
spdk_bdev_has_write_cache;
spdk_bdev_get_uuid;
spdk_bdev_get_acwu;
spdk_bdev_get_md_size;
spdk_bdev_is_md_interleaved;
spdk_bdev_is_md_separate;
spdk_bdev_is_zoned;
spdk_bdev_get_data_block_size;
spdk_bdev_get_physical_block_size;
spdk_bdev_get_dif_type;
spdk_bdev_is_dif_head_of_md;
spdk_bdev_is_dif_check_enabled;
spdk_bdev_get_current_qd;
spdk_bdev_get_qd;
spdk_bdev_get_qd_sampling_period;
spdk_bdev_set_qd_sampling_period;
spdk_bdev_get_io_time;
spdk_bdev_get_weighted_io_time;
spdk_bdev_get_io_channel;
spdk_bdev_get_module_ctx;
spdk_bdev_read;
spdk_bdev_read_blocks;
spdk_bdev_read_blocks_with_md;
spdk_bdev_readv;
spdk_bdev_readv_blocks;
spdk_bdev_readv_blocks_with_md;
spdk_bdev_write;
spdk_bdev_write_blocks;
spdk_bdev_write_blocks_with_md;
spdk_bdev_writev;
spdk_bdev_writev_blocks;
spdk_bdev_writev_blocks_with_md;
spdk_bdev_compare_blocks;
spdk_bdev_compare_blocks_with_md;
spdk_bdev_comparev_blocks;
spdk_bdev_comparev_blocks_with_md;
spdk_bdev_comparev_and_writev_blocks;
spdk_bdev_zcopy_start;
spdk_bdev_zcopy_end;
spdk_bdev_write_zeroes;
spdk_bdev_write_zeroes_blocks;
spdk_bdev_unmap;
spdk_bdev_unmap_blocks;
spdk_bdev_flush;
spdk_bdev_flush_blocks;
spdk_bdev_reset;
spdk_bdev_abort;
spdk_bdev_nvme_admin_passthru;
spdk_bdev_nvme_io_passthru;
spdk_bdev_nvme_io_passthru_md;
spdk_bdev_free_io;
spdk_bdev_queue_io_wait;
spdk_bdev_get_io_stat;
spdk_bdev_get_device_stat;
spdk_bdev_io_get_nvme_status;
spdk_bdev_io_get_nvme_fused_status;
spdk_bdev_io_get_scsi_status;
spdk_bdev_io_get_aio_status;
spdk_bdev_io_get_iovec;
spdk_bdev_io_get_md_buf;
spdk_bdev_io_get_cb_arg;
spdk_bdev_histogram_enable;
spdk_bdev_histogram_get;
spdk_bdev_get_media_events;
spdk_bdev_get_memory_domains;
spdk_bdev_readv_blocks_ext;
spdk_bdev_writev_blocks_ext;
# Public functions in bdev_module.h
spdk_bdev_register;
spdk_bdev_unregister;
spdk_bdev_unregister_by_name;
spdk_bdev_destruct_done;
spdk_bdev_module_examine_done;
spdk_bdev_module_init_done;
spdk_bdev_module_fini_done;
spdk_bdev_module_fini_start_done;
spdk_bdev_module_claim_bdev;
spdk_bdev_module_release_bdev;
spdk_bdev_alias_add;
spdk_bdev_alias_del;
spdk_bdev_alias_del_all;
spdk_bdev_get_aliases;
spdk_bdev_io_get_buf;
spdk_bdev_io_get_aux_buf;
spdk_bdev_io_put_aux_buf;
spdk_bdev_io_set_buf;
spdk_bdev_io_set_md_buf;
spdk_bdev_io_complete;
spdk_bdev_io_complete_nvme_status;
spdk_bdev_io_complete_scsi_status;
spdk_bdev_io_complete_aio_status;
spdk_bdev_io_get_thread;
spdk_bdev_io_get_io_channel;
spdk_bdev_notify_blockcnt_change;
spdk_scsi_nvme_translate;
spdk_bdev_module_list_add;
spdk_bdev_module_list_find;
spdk_bdev_part_base_get_bdev;
spdk_bdev_part_base_get_bdev_name;
spdk_bdev_part_base_get_desc;
spdk_bdev_part_base_get_tailq;
spdk_bdev_part_base_get_ctx;
spdk_bdev_part_base_free;
spdk_bdev_part_free;
spdk_bdev_part_base_hotremove;
spdk_bdev_part_base_construct_ext;
spdk_bdev_part_construct;
spdk_bdev_part_submit_request;
spdk_bdev_part_get_bdev;
spdk_bdev_part_get_base;
spdk_bdev_part_get_base_bdev;
spdk_bdev_part_get_offset_blocks;
spdk_bdev_push_media_events;
spdk_bdev_notify_media_management;
spdk_bdev_for_each_bdev_io;
# Public functions in bdev_zone.h
spdk_bdev_get_zone_size;
spdk_bdev_get_num_zones;
spdk_bdev_get_zone_id;
spdk_bdev_get_max_zone_append_size;
spdk_bdev_get_max_open_zones;
spdk_bdev_get_max_active_zones;
spdk_bdev_get_optimal_open_zones;
spdk_bdev_get_zone_info;
spdk_bdev_zone_management;
spdk_bdev_zone_append;
spdk_bdev_zone_appendv;
spdk_bdev_zone_append_with_md;
spdk_bdev_zone_appendv_with_md;
spdk_bdev_io_get_append_location;
# Everything else
local: *;
};