Spdk/lib/env_dpdk
Ben Walker a36bc251df env_dpdk: Automatically map PCI BARs into VFIO
By doing the registration immediately upon mapping the BAR instead of
when the memory is inserted into the spdk_mem_map, we're able to
register BARs that are not 2MB multiples in size and alignment. The SPDK
API for registering a BAR already returns the physical/io address in the
map call, and it can be used directly without a call to
spdk_mem_register().

If the user does elect to later register the BAR using
spdk_mem_register(), we attempt to insert the 2MB aligned segments we
can into the spdk_mem_map. Users may still need to register memory for a
few reasons, such as making spdk_vtophys() work, or for setting up the
BAR as a target for RDMA. These cases still require 2MB aligned and
sized segments.

Change-Id: I395ae8803ec4bf22703f6f76db54200949e82532
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14017
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
2022-09-26 11:48:39 +00:00
..
env_internal.h env_dpdk: Automatically map PCI BARs into VFIO 2022-09-26 11:48:39 +00:00
env.c check_format: For C files only, fix return type breaks 2022-06-27 09:33:48 +00:00
env.mk env/dpdk: skip build of DPDK based governors when missing rte_power 2022-06-15 08:08:55 +00:00
init.c env_dpdk: make pci_env_init() return int 2022-09-23 08:01:01 +00:00
Makefile env_dpdk: move <=22.07 specific code to pci_dpdk_2207.c 2022-09-23 08:01:01 +00:00
memory.c env_dpdk: Automatically map PCI BARs into VFIO 2022-09-26 11:48:39 +00:00
pci_dpdk_2207.c env_dpdk: Automatically map PCI BARs into VFIO 2022-09-26 11:48:39 +00:00
pci_dpdk.c env_dpdk: Automatically map PCI BARs into VFIO 2022-09-26 11:48:39 +00:00
pci_dpdk.h env_dpdk: Automatically map PCI BARs into VFIO 2022-09-26 11:48:39 +00:00
pci_event.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
pci_idxd.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
pci_ioat.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
pci_virtio.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
pci_vmd.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
pci.c env_dpdk: Automatically map PCI BARs into VFIO 2022-09-26 11:48:39 +00:00
sigbus_handler.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00
spdk_env_dpdk.map env/pci: method for registering PCI device providers 2022-09-01 08:48:32 +00:00
threads.c Replace most BSD 3-clause license text with SPDX identifier. 2022-06-09 07:35:12 +00:00