nvmf: don't set aerl=0 for non-discovery controllers

Commit b7cc4dd added support multiple AERs, but didn't
remove the code that hardcodes aerl=0 for non-discovery
controllers.  So even though the target now supports
multiple AERs, we never indicate that for non-discovery
controllers.

The spec also recommends that implementations support
a minimum of 4 AERs - so the current behavior is not
recommended.

It seems that at least on Windows (when testing with
vfio-user transport) we see the limit get exceeded
which results in ERRLOGs.  Let's keep the ERRLOG there
for now, assuming that once we report we support 4
AERs that Windows won't try to send more than that.

Fixes issue #2000.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I6a07a6f37aaa6e531ae2cf1e1c46da036b00785b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8488
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: <dongx.yi@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
This commit is contained in:
Jim Harris 2021-06-23 17:11:48 +00:00 committed by Changpeng Liu
parent 6aa6bfdda3
commit 164bfddf24

View File

@ -2318,7 +2318,6 @@ spdk_nvmf_ctrlr_identify_ctrlr(struct spdk_nvmf_ctrlr *ctrlr, struct spdk_nvme_c
cdata->ctratt.host_id_exhid_supported = 1; cdata->ctratt.host_id_exhid_supported = 1;
/* TODO: Concurrent execution of multiple abort commands. */ /* TODO: Concurrent execution of multiple abort commands. */
cdata->acl = 0; cdata->acl = 0;
cdata->aerl = 0;
cdata->frmw.slot1_ro = 1; cdata->frmw.slot1_ro = 1;
cdata->frmw.num_slots = 1; cdata->frmw.num_slots = 1;