kernel - Flesh out nvme interrupts (non-msi for now)
commit7e78206475eb3f2634ed628a6a86440fd26208b4
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 5 Jun 2016 06:45:59 +0000 (4 23:45 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 5 Jun 2016 06:45:59 +0000 (4 23:45 -0700)
tree3d482dbcee738b6f7ef822d8490ce3c613360406
parent97a077a0f82ec0defbf5e7dfde71f966878835e7
kernel - Flesh out nvme interrupts (non-msi for now)

* MSI/MSIX not working currently so just turn it off for the moment.

* Normal interrupt now operational.  Implement a real nvme_intr() and
  Cleanup some of our polling hacks now that interrupts work.

* Rearrange shutdown so admin polling continues to work while the devfs
  disk infrastructure is being torn down.

* Tests with this little samsung mini-pcie nvme card:

  120,000 IOPS (concurrent 512 byte dd)
  1.5 GBytes/sec (sequential read uncompressable file through filesystem)
  1.5 GBytes/sec reading via tar.

  test40# ls -la /mnt2/test.dat
  -rw-r--r--  1 root  wheel  7516192768 Jun  4 23:50 /mnt2/test.dat
  test40# time tar cf /dev/null /mnt2/test.dat
  0.062u 3.937s 0:04.84 82.4%     28+69k 28642+0io 0pf+0w  (from media)
  0.164u 1.367s 0:01.81 83.9%     29+71k 978+0io 0pf+0w    (from buffer cache)
sys/dev/disk/nvme/nvme.c
sys/dev/disk/nvme/nvme.h
sys/dev/disk/nvme/nvme_admin.c
sys/dev/disk/nvme/nvme_attach.c