git: nvme - Handle full submission queue
Matthew Dillon
dillon at crater.dragonflybsd.org
Sat Jun 25 22:15:19 PDT 2016
commit f2a9f724dff7c50588ada312e0809e670a581139
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date: Sat Jun 25 20:57:07 2016 -0700
nvme - Handle full submission queue
* The submission queue is a ring and can be full even if requests are
available due to out-of-order completion. Update the submission queue's
subq_head from the completion queue status and check for a full condition.
The normal requeue signaling suffices for resume.
* Also note that we allocate maxqe requests, which is actually one more than
we can have on the ring at once. But now that we have the queue-full check,
this becomes a non-issue. Just leave it at maxqe for convenience.
* Tested by temporarily reducing maxqe to 16 and doing stuff to overload it.
Maxqe was returned to 256 for the commit.
Summary of changes:
sys/dev/disk/nvme/nvme.c | 64 +++++++++++++++++++++++++++++++++++++++---------
sys/dev/disk/nvme/nvme.h | 4 ++-
2 files changed, 55 insertions(+), 13 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/f2a9f724dff7c50588ada312e0809e670a581139
--
DragonFly BSD source repository
More information about the Commits
mailing list