git: nvme - Handle full submission queue
dillon at crater.dragonflybsd.org
Sat Jun 25 22:15:19 PDT 2016
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(-)
DragonFly BSD source repository
More information about the Commits