#
f08746a7 |
| 09-Nov-2024 |
Mark Johnston <markj@FreeBSD.org> |
nvme: Pass malloc flags to request allocation functions
There are some contexts where it is safe to sleep, so we should pass M_WAITOK to ensure that a null pointer dereference can't happen.
A few p
nvme: Pass malloc flags to request allocation functions
There are some contexts where it is safe to sleep, so we should pass M_WAITOK to ensure that a null pointer dereference can't happen.
A few places allocate with M_NOWAIT but have no way to signal an error. Flag those with an XXX comment.
PR: 276770 Reviewed by: imp MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D47307
show more ...
|
Revision tags: release/13.4.0 |
|
#
3d89acf5 |
| 15-Aug-2024 |
Warner Losh <imp@FreeBSD.org> |
nvme: Separate total failures from I/O failures
When it's a I/O failure, we can still send admin commands. Separate out the admin failures and flag them as such so that we can still send admin comma
nvme: Separate total failures from I/O failures
When it's a I/O failure, we can still send admin commands. Separate out the admin failures and flag them as such so that we can still send admin commands on half-failed drives.
Fixes: 9229b3105d88 (nvme: Fail passthrough commands right away in failed state) Sponsored by: Netflix
show more ...
|
#
ce7fac64 |
| 16-Aug-2024 |
Warner Losh <imp@FreeBSD.org> |
Revert "nvme: Separate total failures from I/O failures"
All kinds of crazy stuff was mixed into this commit. Revert it and do it again.
This reverts commit d5507f9e436698ac17dc5ace7ef58493988a9b04
Revert "nvme: Separate total failures from I/O failures"
All kinds of crazy stuff was mixed into this commit. Revert it and do it again.
This reverts commit d5507f9e436698ac17dc5ace7ef58493988a9b04.
Sponsored by: Netflix
show more ...
|
#
d5507f9e |
| 15-Aug-2024 |
Warner Losh <imp@FreeBSD.org> |
nvme: Separate total failures from I/O failures
When it's a I/O failure, we can still send admin commands. Separate out the admin failures and flag them as such so that we can still send admin comma
nvme: Separate total failures from I/O failures
When it's a I/O failure, we can still send admin commands. Separate out the admin failures and flag them as such so that we can still send admin commands on half-failed drives.
Fixes: 9229b3105d88 (nvme: Fail passthrough commands right away in failed state) Sponsored by: Netflix
show more ...
|
Revision tags: release/14.1.0 |
|
#
01fc4883 |
| 13-May-2024 |
John Baldwin <jhb@FreeBSD.org> |
nvme: Use strlcpy instead of strncpy to ensure termination
Reviewed by: dab, imp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D45152
|
#
fe52c338 |
| 06-Mar-2024 |
Warner Losh <imp@FreeBSD.org> |
nvme_sim: Add comment about the is_failed test
We only see a request with a failed controller while we're in the process of failing the controller. Add a comment to that effect.
Sponsored by: Netf
nvme_sim: Add comment about the is_failed test
We only see a request with a failed controller while we're in the process of failing the controller. Add a comment to that effect.
Sponsored by: Netflix
show more ...
|
Revision tags: release/13.3.0 |
|
#
fdafd315 |
| 24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remov
sys: Automated cleanup of cdefs and other formatting
Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row.
Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/
Sponsored by: Netflix
show more ...
|
Revision tags: release/14.0.0 |
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
63b0c00e |
| 08-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
nvme: Update comment
Fix comment to note we should grab additional data from the error log page, but don't currently (it's inclear if we should do that here and other places in nvd that want it, or
nvme: Update comment
Fix comment to note we should grab additional data from the error log page, but don't currently (it's inclear if we should do that here and other places in nvd that want it, or if we should let nvd / the nda periph make the request).
Sponsored by: Netflix Reviewed by: chuck, mav, jhb Differential Revision: https://reviews.freebsd.org/D41315
show more ...
|
#
774ab87c |
| 21-Jul-2023 |
Warner Losh <imp@FreeBSD.org> |
cam: Add CAM_NVME_STATUS_ERROR error code
Add CAM_NVME_STATUS_ERROR error code. Flag all NVME commands that completed with an error status as CAM_NVME_STATUS_ERROR (a new value) instaead of CAM_REQ_
cam: Add CAM_NVME_STATUS_ERROR error code
Add CAM_NVME_STATUS_ERROR error code. Flag all NVME commands that completed with an error status as CAM_NVME_STATUS_ERROR (a new value) instaead of CAM_REQ_CMP_ERR. This indicates to the upper layers of CAM that the 'cpl' field for nvmeio CCBs is valid and can be examined for error recovery, if desired.
No functional change. nda will still see these as errors, call ndaerror() to get the error recovery action, etc. cam_periph_error will select the same case as before (even w/o the change, though the change makes it explicit).
Sponsored by: Netflix Reviewed by: chuck, mav, jhb Differential Revision: https://reviews.freebsd.org/D41085
show more ...
|
#
9c2203a6 |
| 27-Jun-2023 |
John Baldwin <jhb@FreeBSD.org> |
nvme: Tidy up transfer rate settings in XPT_GET_TRAN_SETTINGS.
- Replace a magic number with CTS_NVME_VALID_SPEC.
- Set the transport and protocol versions the same as for XPT_PATH_INQ.
Probably w
nvme: Tidy up transfer rate settings in XPT_GET_TRAN_SETTINGS.
- Replace a magic number with CTS_NVME_VALID_SPEC.
- Set the transport and protocol versions the same as for XPT_PATH_INQ.
Probably we shouldn't bother with setting the version in the 'spec' member of ccb_trans_settings_nvme at all and use the transport and/or protocol version field instead.
Reviewed by: chuck, imp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D40616
show more ...
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0 |
|
#
8f079322 |
| 06-Dec-2021 |
Warner Losh <imp@FreeBSD.org> |
nvme_sim: Only report PCI related stats when we can
For AHCI attached devices, we report the location and identification information of the AHCI controller that we're attached to. We also don't repr
nvme_sim: Only report PCI related stats when we can
For AHCI attached devices, we report the location and identification information of the AHCI controller that we're attached to. We also don't reprot link speed in that case, since we can't get to the PCIe config space registers to find that out.
Sponsored by: Netflix Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D33287
show more ...
|
Revision tags: release/12.3.0 |
|
#
4b977e6d |
| 17-Sep-2021 |
Warner Losh <imp@FreeBSD.org> |
nvme/nda: Fail all nvme I/Os after controller fails
Once the controller has failed, fail all I/O w/o sending it to the device. The reset of the nvme driver won't schedule any I/O to the failed devic
nvme/nda: Fail all nvme I/Os after controller fails
Once the controller has failed, fail all I/O w/o sending it to the device. The reset of the nvme driver won't schedule any I/O to the failed device, and the controller is in an indeterminate state and can't accept I/O. Fail both at the top end of the sim and the bottom end. Don't bother queueing up the I/O for failure in a different task.
Reviewed by: chuck Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D31341
show more ...
|
Revision tags: release/13.0.0, release/12.2.0 |
|
#
e2515283 |
| 27-Aug-2020 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: Rubicon Communications, LLC (netgate.com)
|
#
de6fc2e3 |
| 15-Aug-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r364082 through r364250.
|
#
97dc595d |
| 12-Aug-2020 |
Alexander Motin <mav@FreeBSD.org> |
Report cpi->hba_* for nda(4) because why not.
MFC after: 1 week
|
Revision tags: release/11.4.0 |
|
#
950475ca |
| 01-May-2020 |
Warner Losh <imp@FreeBSD.org> |
Rename ns notification function...
This function is called whenever the namespace is added, deleted or changes. Update the name to reflect that. No functional change.
|
#
9cde7894 |
| 30-Apr-2020 |
Warner Losh <imp@FreeBSD.org> |
Move / reword a comment.
Explain what we're doing with mapping CAM's notion of a LUN to NVMe's notion of a namespace.
|
#
027d0612 |
| 30-Apr-2020 |
Warner Losh <imp@FreeBSD.org> |
Return the nvmeX device associated with the ndaX device.
Add the nvmeX device to the XPT_PATH_INQ nvme specific information. while one could figure this out by looking up the domain:bus:slot:functio
Return the nvmeX device associated with the ndaX device.
Add the nvmeX device to the XPT_PATH_INQ nvme specific information. while one could figure this out by looking up the domain:bus:slot:function, it's a lot easier to have the SIM set it directly since the sim knows this.
show more ...
|
Revision tags: release/12.1.0, release/11.3.0 |
|
#
e532a999 |
| 20-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @349234
Sponsored by: The FreeBSD Foundation
|
#
b1f14710 |
| 07-Jun-2019 |
Chuck Tuffli <chuck@FreeBSD.org> |
Fix nda(4) PCIe link status output
Differentiate between PCI Express Endpoint devices and Root Complex Integrated Endpoints in the nda driver. The Link Status and Capability registers are not valid
Fix nda(4) PCIe link status output
Differentiate between PCI Express Endpoint devices and Root Complex Integrated Endpoints in the nda driver. The Link Status and Capability registers are not valid for Integrated Endpoints and should not be displayed. The bhyve emulated NVMe device will advertise as being an Integrated Endpoint.
Reviewed by: imp Approved byL imp (mentor) Differential Revision: https://reviews.freebsd.org/D20282
show more ...
|
#
8e69ae1c |
| 05-Feb-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r343712 through r343806.
|
#
52467047 |
| 04-Feb-2019 |
Warner Losh <imp@FreeBSD.org> |
Regularize the Netflix copyright
Use recent best practices for Copyright form at the top of the license: 1. Remove all the All Rights Reserved clauses on our stuff. Where we piggybacked others, u
Regularize the Netflix copyright
Use recent best practices for Copyright form at the top of the license: 1. Remove all the All Rights Reserved clauses on our stuff. Where we piggybacked others, use a separate line to make things clear. 2. Use "Netflix, Inc." everywhere. 3. Use a single line for the copyright for grep friendliness. 4. Use date ranges in all places for our stuff.
Approved by: Netflix Legal (who gave me the form), adrian@ (pmc files)
show more ...
|
#
511662d0 |
| 25-Dec-2018 |
Alexander Motin <mav@FreeBSD.org> |
Remove CAM SIM lock from NVMe SIM.
CAM does not require SIM lock since FreeBSD 10.4, and NVMe code never required it at all, using per-queue locks instead. This formally allows parallel request sub
Remove CAM SIM lock from NVMe SIM.
CAM does not require SIM lock since FreeBSD 10.4, and NVMe code never required it at all, using per-queue locks instead. This formally allows parallel request submission in CAM mode as much as single per-device and per-queue locks of CAM allow.
MFC after: 1 month
show more ...
|
Revision tags: release/12.0.0, release/11.2.0 |
|
#
f439e3a4 |
| 25-May-2018 |
Alexander Motin <mav@FreeBSD.org> |
Refactor NVMe CAM integration.
- Remove layering violation, when NVMe SIM code accessed CAM internal device structures to set pointers on controller and namespace data. Instead make NVMe XPT probe
Refactor NVMe CAM integration.
- Remove layering violation, when NVMe SIM code accessed CAM internal device structures to set pointers on controller and namespace data. Instead make NVMe XPT probe fetch the data directly from hardware. - Cleanup NVMe SIM code, fixing support for multiple namespaces per controller (reporting them as LUNs) and adding controller detach support and run-time namespace change notifications. - Add initial support for namespace change async events. So far only in CAM mode, but it allows run-time namespace arrival and departure. - Add missing nvme_notify_fail_consumers() call on controller detach. Together with previous changes this allows NVMe device detach/unplug.
Non-CAM mode still requires a lot of love to stay on par, but at least CAM mode code should not stay in the way so much, becoming much more self-sufficient.
Reviewed by: imp MFC after: 1 month Sponsored by: iXsystems, Inc.
show more ...
|