summaryrefslogtreecommitdiffstats
path: root/sys/dev/nvme/nvme_private.h
diff options
context:
space:
mode:
authorjimharris <jimharris@FreeBSD.org>2012-10-18 00:45:53 +0000
committerjimharris <jimharris@FreeBSD.org>2012-10-18 00:45:53 +0000
commit4ff82f24cf60061567658c04ca7683afcd3c02c4 (patch)
tree13ce3afede2e9f058b423fec60983fdac597faa6 /sys/dev/nvme/nvme_private.h
parenta5279c222fba5a40054c2b884024700c8f22a6f7 (diff)
downloadFreeBSD-src-4ff82f24cf60061567658c04ca7683afcd3c02c4.zip
FreeBSD-src-4ff82f24cf60061567658c04ca7683afcd3c02c4.tar.gz
Add ability to queue nvme_request objects if no nvme_trackers are available.
This eliminates the need to manage queue depth at the nvd(4) level for Chatham prototype board workarounds, and also adds the ability to accept a number of requests on a single qpair that is much larger than the number of trackers allocated. Sponsored by: Intel
Diffstat (limited to 'sys/dev/nvme/nvme_private.h')
-rw-r--r--sys/dev/nvme/nvme_private.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h
index 0797b53..4f57f7c 100644
--- a/sys/dev/nvme/nvme_private.h
+++ b/sys/dev/nvme/nvme_private.h
@@ -115,7 +115,7 @@ struct nvme_request {
struct uio *uio;
nvme_cb_fn_t cb_fn;
void *cb_arg;
- SLIST_ENTRY(nvme_request) slist;
+ STAILQ_ENTRY(nvme_request) stailq;
};
struct nvme_tracker {
@@ -168,6 +168,7 @@ struct nvme_qpair {
uint64_t cpl_bus_addr;
SLIST_HEAD(, nvme_tracker) free_tr;
+ STAILQ_HEAD(, nvme_request) queued_req;
struct nvme_tracker **act_tr;
OpenPOWER on IntegriCloud