git: nvme - Handle full submission queue

Matthew Dillon dillon at
Sat Jun 25 22:15:19 PDT 2016

commit f2a9f724dff7c50588ada312e0809e670a581139
Author: Matthew Dillon <dillon at>
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 mailing list