nvmf: allow to override aer limit by specific transport
it is possible that some specific transport doesn't support NVMF_MAX_ASYNC_EVENTS (although it is a recommended value by spec) with that change it is possible to reduce aerl on transport specific layer so it can be advertised correctly during identify controller Signed-off-by: Jacek Kalwas <jacek.kalwas@intel.com> Change-Id: Ife6465b5324fb39f9b343c6f42b860e9dd1164b2 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10422 Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
parent
763d058efd
commit
9d20f8b0b5
@ -201,6 +201,7 @@ struct spdk_nvmf_listener {
|
|||||||
* A subset of struct spdk_nvme_ctrlr_data that are emulated by a fabrics device.
|
* A subset of struct spdk_nvme_ctrlr_data that are emulated by a fabrics device.
|
||||||
*/
|
*/
|
||||||
struct spdk_nvmf_ctrlr_data {
|
struct spdk_nvmf_ctrlr_data {
|
||||||
|
uint8_t aerl;
|
||||||
uint16_t kas;
|
uint16_t kas;
|
||||||
/** pci vendor id */
|
/** pci vendor id */
|
||||||
uint16_t vid;
|
uint16_t vid;
|
||||||
|
@ -304,6 +304,7 @@ static void
|
|||||||
nvmf_ctrlr_cdata_init(struct spdk_nvmf_transport *transport, struct spdk_nvmf_subsystem *subsystem,
|
nvmf_ctrlr_cdata_init(struct spdk_nvmf_transport *transport, struct spdk_nvmf_subsystem *subsystem,
|
||||||
struct spdk_nvmf_ctrlr_data *cdata)
|
struct spdk_nvmf_ctrlr_data *cdata)
|
||||||
{
|
{
|
||||||
|
cdata->aerl = NVMF_MAX_ASYNC_EVENTS - 1;
|
||||||
cdata->kas = KAS_DEFAULT_VALUE;
|
cdata->kas = KAS_DEFAULT_VALUE;
|
||||||
cdata->vid = SPDK_PCI_VID_INTEL;
|
cdata->vid = SPDK_PCI_VID_INTEL;
|
||||||
cdata->ssvid = SPDK_PCI_VID_INTEL;
|
cdata->ssvid = SPDK_PCI_VID_INTEL;
|
||||||
@ -2498,7 +2499,7 @@ spdk_nvmf_ctrlr_identify_ctrlr(struct spdk_nvmf_ctrlr *ctrlr, struct spdk_nvme_c
|
|||||||
cdata->mdts = spdk_u32log2(transport->opts.max_io_size / 4096);
|
cdata->mdts = spdk_u32log2(transport->opts.max_io_size / 4096);
|
||||||
cdata->cntlid = ctrlr->cntlid;
|
cdata->cntlid = ctrlr->cntlid;
|
||||||
cdata->ver = ctrlr->vcprop.vs;
|
cdata->ver = ctrlr->vcprop.vs;
|
||||||
cdata->aerl = NVMF_MAX_ASYNC_EVENTS - 1;
|
cdata->aerl = ctrlr->cdata.aerl;
|
||||||
cdata->lpa.edlp = 1;
|
cdata->lpa.edlp = 1;
|
||||||
cdata->elpe = 127;
|
cdata->elpe = 127;
|
||||||
cdata->maxcmd = transport->opts.max_queue_depth;
|
cdata->maxcmd = transport->opts.max_queue_depth;
|
||||||
|
Loading…
Reference in New Issue
Block a user