5b03dd938c
Docs, RPC, unit tests, etc., will follow. Notes: * The current implementation will only work with VFIO. * The current implementation supports only the existing accel framework API. The API will be expanded for DSA exclusive features in a subsequent patch. * SW is required to manage flow control, to not over-run the work queues. This is provided in the accel plug-in module. The upper layers use public API to manage this. * As we need to support any number of channels (we can't limit ourselves to the number of work queues) we need to dynamically size/resize our per channel descriptor rings based on the number of current channels. This is done from upper layers via public API into the lib. * As channels are created, the total number of work queue slots is divided across the channels evenly. Same thing when they are destroyed, remaining channels will see the ring sizes increase. This is done from upper layers via public API into the lib. Signed-off-by: paul luse <paul.e.luse@intel.com> Change-Id: Ifaa39935107206a2d990cec992854675e5502057 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/1722 Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
113 lines
2.5 KiB
Plaintext
113 lines
2.5 KiB
Plaintext
{
|
|
global:
|
|
|
|
# Public functions in env.h
|
|
spdk_malloc;
|
|
spdk_zmalloc;
|
|
spdk_realloc;
|
|
spdk_free;
|
|
spdk_env_opts_init;
|
|
spdk_env_init;
|
|
spdk_env_fini;
|
|
spdk_dma_malloc;
|
|
spdk_dma_malloc_socket;
|
|
spdk_dma_zmalloc;
|
|
spdk_dma_zmalloc_socket;
|
|
spdk_dma_realloc;
|
|
spdk_dma_free;
|
|
spdk_memzone_reserve;
|
|
spdk_memzone_reserve_aligned;
|
|
spdk_memzone_lookup;
|
|
spdk_memzone_free;
|
|
spdk_memzone_dump;
|
|
spdk_mempool_create;
|
|
spdk_mempool_create_ctor;
|
|
spdk_mempool_get_name;
|
|
spdk_mempool_free;
|
|
spdk_mempool_get;
|
|
spdk_mempool_get_bulk;
|
|
spdk_mempool_put;
|
|
spdk_mempool_put_bulk;
|
|
spdk_mempool_count;
|
|
spdk_mempool_obj_iter;
|
|
spdk_mempool_lookup;
|
|
spdk_env_get_core_count;
|
|
spdk_env_get_current_core;
|
|
spdk_env_get_first_core;
|
|
spdk_env_get_last_core;
|
|
spdk_env_get_next_core;
|
|
spdk_env_get_socket_id;
|
|
spdk_env_thread_launch_pinned;
|
|
spdk_env_thread_wait_all;
|
|
spdk_process_is_primary;
|
|
spdk_get_ticks;
|
|
spdk_get_ticks_hz;
|
|
spdk_delay_us;
|
|
spdk_pause;
|
|
spdk_ring_create;
|
|
spdk_ring_free;
|
|
spdk_ring_count;
|
|
spdk_ring_enqueue;
|
|
spdk_ring_dequeue;
|
|
spdk_iommu_is_enabled;
|
|
spdk_vtophys;
|
|
spdk_pci_nvme_get_driver;
|
|
spdk_pci_vmd_get_driver;
|
|
spdk_pci_idxd_get_driver;
|
|
spdk_pci_ioat_get_driver;
|
|
spdk_pci_virtio_get_driver;
|
|
spdk_pci_enumerate;
|
|
spdk_pci_get_first_device;
|
|
spdk_pci_get_next_device;
|
|
spdk_pci_device_map_bar;
|
|
spdk_pci_device_unmap_bar;
|
|
spdk_pci_device_get_domain;
|
|
spdk_pci_device_get_bus;
|
|
spdk_pci_device_get_dev;
|
|
spdk_pci_device_get_func;
|
|
spdk_pci_device_get_addr;
|
|
spdk_pci_device_get_vendor_id;
|
|
spdk_pci_device_get_device_id;
|
|
spdk_pci_device_get_subvendor_id;
|
|
spdk_pci_device_get_subdevice_id;
|
|
spdk_pci_device_get_id;
|
|
spdk_pci_device_get_socket_id;
|
|
spdk_pci_device_get_serial_number;
|
|
spdk_pci_device_claim;
|
|
spdk_pci_device_unclaim;
|
|
spdk_pci_device_detach;
|
|
spdk_pci_device_attach;
|
|
spdk_pci_device_cfg_read;
|
|
spdk_pci_device_cfg_write;
|
|
spdk_pci_device_cfg_read8;
|
|
spdk_pci_device_cfg_write8;
|
|
spdk_pci_device_cfg_read16;
|
|
spdk_pci_device_cfg_write16;
|
|
spdk_pci_device_cfg_read32;
|
|
spdk_pci_device_cfg_write32;
|
|
spdk_pci_device_is_removed;
|
|
spdk_pci_addr_compare;
|
|
spdk_pci_addr_parse;
|
|
spdk_pci_addr_fmt;
|
|
spdk_pci_hook_device;
|
|
spdk_pci_unhook_device;
|
|
spdk_pci_device_get_type;
|
|
spdk_unaffinitize_thread;
|
|
spdk_call_unaffinitized;
|
|
spdk_mem_map_alloc;
|
|
spdk_mem_map_free;
|
|
spdk_mem_map_set_translation;
|
|
spdk_mem_map_clear_translation;
|
|
spdk_mem_map_translate;
|
|
spdk_mem_register;
|
|
spdk_mem_unregister;
|
|
|
|
# Public functions in env_dpdk.h
|
|
spdk_env_dpdk_post_init;
|
|
spdk_env_dpdk_post_fini;
|
|
spdk_env_dpdk_external_init;
|
|
spdk_env_dpdk_dump_mem_stats;
|
|
|
|
local: *;
|
|
};
|