git: nvme - Implement MSIX and reverse comq mapping

Matthew Dillon dillon at crater.dragonflybsd.org
Sun Jun 5 20:43:33 PDT 2016


commit 18d2384b5921bf30fe7665539efd40b40f7df232
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sun Jun 5 20:41:00 2016 -0700

    nvme - Implement MSIX and reverse comq mapping
    
    * Implement MSIX.  Map completion queues to cpus via a rotation.
    
    * Adjust the comq mapping code.  For now prioritize assigning a 1:1 cpu
      mapping for submission and completion queues over creating separate
      queues for reads and writes.
    
    * Tested, systat -pv 1 shows this is capable of pushing 50,000+ interrupts
      per second on EACH cpu (all 8 in the xeon box I tested), and run
      250,000 IOPS x 2 cards (500,000 IOPS) using interrupt based comq handling.

Summary of changes:
 sys/dev/disk/nvme/nvme.c        |  57 ++++++++++++++++++++---
 sys/dev/disk/nvme/nvme.h        |   8 ++--
 sys/dev/disk/nvme/nvme_admin.c  |  78 +++++++++++++++++++++----------
 sys/dev/disk/nvme/nvme_attach.c | 101 +++++++++++++++++++++++++++++++++++-----
 4 files changed, 199 insertions(+), 45 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/18d2384b5921bf30fe7665539efd40b40f7df232


-- 
DragonFly BSD source repository



More information about the Commits mailing list