History log of /freebsd-11-stable/sys/dev/nvme/nvme_sim.c
Revision Date Author Comments
# 335166 14-Jun-2018 mav

MFC r325794, r325838 (by imp):
Provide link speed data in XPT_GET_TRAN_SETTINGS. Provide full version
information for that and XPT_PATH_INQ. Provide macros to encode/decode
major/minor versions. Read the link speed and lane count to compute
the base_transfer_speed for XPT_PATH_INQ.


# 335142 14-Jun-2018 mav

MFC r328089 (by imp):
Move setting of CAM_SIM_QUEUED to before we actually submit it to the
hardware. Setting it after is racy, and we can lose the race on a
heavily loaded system.


# 335139 14-Jun-2018 mav

MFC r313954 (by imp): Remove obsolete comment after prior rev.


# 335138 14-Jun-2018 mav

MFC r311351 (by rpokala):
In the same vein as r311350, fix whitespace in handling of XPT_PATH_INQ in
several more drivers.


# 328751 01-Feb-2018 mav

MFC small part of r325794 to fix the build.


# 328750 01-Feb-2018 mav

MFC r327034 (by imp):
Return domain, bus, slot, and function for the transport settings in
PATH_INQ requests for nvme.


# 328702 01-Feb-2018 mav

MFC r324634 (by imp):
Use nvme_ctrlr_poll instead of nvme_ctrlr_intx_handler since it is
more general and doesn't try to access registers that may be undefined
when the card is in MSIX mode.

This change, along with r324630, r324631, r324632, makes nda crash
dumps work again. Previously, they only worked on CPU 0 when the stack
garbage was just so.


# 328699 01-Feb-2018 mav

MFC r324075 (by imp): Tweak performance of nda completions

Use xpt_done_direct in preference to xpt_done when completing a
successful I/O. Continue to use xpt_done when there's an error, or for
completion of the submission of a CCB. This eliminates a context
switch to the cam_doneq thread.


# 328696 01-Feb-2018 mav

MFC r322997: Add CAM/NVMe support for CAM_DATA_SG

This adds support in pass(4) for data to be described with a
scatter-gather list (sglist) to augment the existing (single) virtual
address.


# 328691 01-Feb-2018 mav

MFC r322994: Set the max transactions for NVMe drives better.

Provided a better estimate for the number of transactions that can be
pending at one time. This will be number of queues * number of
trackers / 4, as suggested by Jim Harris. This gives a better estimate
of the number of transactions that CAM should queue before applying
back pressure. This should be revisted when we have real multi-queue
support in CAM and the upper layers of the I/O stack.


# 328683 01-Feb-2018 mav

MFC r322257 (by imp): Use the correct queue depth for nda devices.


# 328681 01-Feb-2018 mav

MFC r322036 (by imp):
Make nvd vs nda choice boot-time rather than build-time

Introduce hw.nvme.use_nvd tunable. This tunable allows both nvd and
nda to be installed in the kernel, while allowing only one of them to
create devices. This is an all-or-nothing setting, and you can't
change it after boot-time. However, it will allow easier A/B testing.


# 328680 01-Feb-2018 mav

MFC r320984 (by imp):
This adds CAM pass(4) support for NVMe IO's. Applications indicate
the IO type (Admin or NVM) using XPT op-codes XPT_NVME_ADMIN or
XPT_NVME_IO.


# 328666 01-Feb-2018 mav

MFC r303466: Kill a few stray debug printfs.


# 328665 01-Feb-2018 mav

MFC r303126 (by imp):
Actually import nvme_sim so the CAM attachment for NVME (nda) actually
works.