Commit 6f3e2778 authored by Jim Harris's avatar Jim Harris Committed by Konrad Sztyber
Browse files

nvme: add spdk_nvme_ctrlr_get_max_sges



Signed-off-by: default avatarJim Harris <jim.harris@samsung.com>
Change-Id: I41ecc9243c8d5b3969e9cc13dde9a538b13d71a3
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/21956


Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
parent c522a811
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -11,6 +11,10 @@ SPDK applications can now start with `--wait-for-rpc` and JSON configuration pro
Function `spdk_subsystem_init_from_json_config` is deprecated and will be removed in 24.09 release.
Please use `spdk_subsystem_load_config` instead.

### nvme

Added `spdk_nvme_ctrlr_get_max_sges`.

### bdev_uring

Added `bdev_uring_rescan` RPC to allow rescaning the size of uring bdev.
+11 −0
Original line number Diff line number Diff line
@@ -1330,6 +1330,17 @@ struct spdk_pci_device *spdk_nvme_ctrlr_get_pci_device(struct spdk_nvme_ctrlr *c
 */
uint32_t spdk_nvme_ctrlr_get_max_xfer_size(const struct spdk_nvme_ctrlr *ctrlr);

/**
 * Get the maximum number of SGEs per request for the given NVMe controller.
 *
 * Controllers that do not support SGL will return UINT16_MAX.
 *
 * \param ctrlr Opaque handle to NVMe controller.
 *
 * \return Maximum number of SGEs per request
 */
uint16_t spdk_nvme_ctrlr_get_max_sges(const struct spdk_nvme_ctrlr *ctrlr);

/**
 * Check whether the nsid is an active nv for the given NVMe controller.
 *
+10 −0
Original line number Diff line number Diff line
@@ -4571,6 +4571,16 @@ spdk_nvme_ctrlr_get_max_xfer_size(const struct spdk_nvme_ctrlr *ctrlr)
	return ctrlr->max_xfer_size;
}

uint16_t
spdk_nvme_ctrlr_get_max_sges(const struct spdk_nvme_ctrlr *ctrlr)
{
	if (ctrlr->flags & SPDK_NVME_CTRLR_SGL_SUPPORTED) {
		return ctrlr->max_sges;
	} else {
		return UINT16_MAX;
	}
}

void
spdk_nvme_ctrlr_register_aer_callback(struct spdk_nvme_ctrlr *ctrlr,
				      spdk_nvme_aer_cb aer_cb_fn,
+1 −0
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@
	spdk_nvme_ctrlr_get_num_ns;
	spdk_nvme_ctrlr_get_pci_device;
	spdk_nvme_ctrlr_get_max_xfer_size;
	spdk_nvme_ctrlr_get_max_sges;
	spdk_nvme_ctrlr_is_active_ns;
	spdk_nvme_ctrlr_get_first_active_ns;
	spdk_nvme_ctrlr_get_next_active_ns;