#
ec26851b |
| 19-Oct-2016 |
jdolecek <jdolecek@NetBSD.org> |
follow advice of spec and block interrupts via INTMS/INTMC for intx handler; this also makes it possible to offload the actual interrupt processing to softintr handler, similar as for MSI/MSI-X
|
#
1479aa82 |
| 18-Oct-2016 |
nonaka <nonaka@NetBSD.org> |
fix a sync range size when number of bus_dma segment is greater than 2.
|
#
d9c434c2 |
| 05-Oct-2016 |
nonaka <nonaka@NetBSD.org> |
The maximum number of IO queue entries is hardware supported value.
|
#
24c93e40 |
| 27-Sep-2016 |
pgoyette <pgoyette@NetBSD.org> |
Modularize the ld driver and all of its attachments. Ensure that all parents are capable of rescan (or otherwise provide a means of attaching children post-initialization).
|
#
b39af5a4 |
| 20-Sep-2016 |
jdolecek <jdolecek@NetBSD.org> |
cache flush call must wait for completion; cap wait to 60 seconds just in case controller won't respond
|
#
c02068e3 |
| 19-Sep-2016 |
jdolecek <jdolecek@NetBSD.org> |
slightly optimize memory access - change struct nvme_queue so that the struct dmamem members are allocated as part of it, instead of separate kmem_alloc()s
|
#
a1e4b0e3 |
| 19-Sep-2016 |
jdolecek <jdolecek@NetBSD.org> |
on further thought, just remove the separately allocated nvme_ns_context altogether and fold into nvme_ccb; allocating this separately just isn't useful
|
#
6299e0ef |
| 19-Sep-2016 |
jdolecek <jdolecek@NetBSD.org> |
comment tyop and KNF; pointed out by Nick
|
#
9b285462 |
| 18-Sep-2016 |
jdolecek <jdolecek@NetBSD.org> |
fix several bugs, make nvme(4) MPSAFE by default and also bump default number of ioq from 128 to 1024; tested with VirtualBox and QEMU
* remove NVME_INTMC/NVME_INTMS writes in hw intr handler as thi
fix several bugs, make nvme(4) MPSAFE by default and also bump default number of ioq from 128 to 1024; tested with VirtualBox and QEMU
* remove NVME_INTMC/NVME_INTMS writes in hw intr handler as this is not MPSAFE, fortunately they don't seem to be necessary; shaves two register writes * need to use full mutex_enter() in nvme_q_complete(), to avoid small race between one handler exiting the loop and another entering * for MSI, handover the command result processing to softintr; unfortunately can't easily do that for INTx interrupts as they require doorbell write to deassert * unlock/relock q->q_cq_mtx before calling ccb_done to avoid potential deadlocks * make sure to destroy queue mutexes when destroying the queue (LOCKDEBUG) * make ns ctx pool per-device, so that it's deallocated properly on module unload * handle ctx allocation failure in ld_nvme_dobio() * remove splbio() calls in ld_nvme_dobio() and sync, the paths are exercised only for dump/shutdown, and that already disables interrupts * free the ns ctx in ld_nvme_biodone() before calling lddone() to avoid memory starvation, as lddone() can trigger another i/o request * be more careful with using PR_WAITOK, the paths are called from interrupt context and there we can't wait
show more ...
|
#
66e48613 |
| 17-Sep-2016 |
jdolecek <jdolecek@NetBSD.org> |
make nvme_dumpregs() compile on LP64 hosts
sprinkle some delays() and extra checks into attach code, so that it follows more closely what FreeBSD driver does, and is easier to cross-check
|
#
7fd0fb8d |
| 16-Sep-2016 |
jdolecek <jdolecek@NetBSD.org> |
introduce optional timeout for the polled commands; currently 5 seconds for queue creation/deletion, 10 seconds for controller/namespace identify, and unlimited for cache sync and passthrough command
introduce optional timeout for the polled commands; currently 5 seconds for queue creation/deletion, 10 seconds for controller/namespace identify, and unlimited for cache sync and passthrough commands
this makes device attach error out instead of hanging the kernel when the device fails to respond properly, such as under QEMU currently
show more ...
|
#
141e377d |
| 16-Sep-2016 |
jdolecek <jdolecek@NetBSD.org> |
make nvme_dumpregs() compile when NVME_DEBUG is defined
|
#
573e4474 |
| 08-Sep-2016 |
nonaka <nonaka@NetBSD.org> |
Fix to cannnot be opened a nvme(4) namespace device file.
|
#
62da6200 |
| 08-Sep-2016 |
nonaka <nonaka@NetBSD.org> |
fix off-by-one error in namespace id range check.
|
#
5bfc0c6c |
| 04-Jun-2016 |
nonaka <nonaka@NetBSD.org> |
Add NVMe command passthrough support.
|
#
d591b4e8 |
| 02-May-2016 |
christos <christos@NetBSD.org> |
move scsipi_strvis -> libkern:strnvisx() change the prototype to match userland fix sizes of strings passed to it
|
#
9f1b7ef7 |
| 01-May-2016 |
nonaka <nonaka@NetBSD.org> |
Added nvme(4) for Non-Volatile Memory Host Controller Interface devices. Ported from OpenBSD.
|