Revision tags: release/12.1.0 |
|
#
93489854 |
| 25-Oct-2019 |
Brooks Davis <brooks@FreeBSD.org> |
nda(4): Remove unnecessary union and avoid Clang -Wsizeof-array-divwarning
Clang trunk recently gained this new warning, and complains about the sizeof(trim->data) / sizeof(struct nvme_dsm_range) ex
nda(4): Remove unnecessary union and avoid Clang -Wsizeof-array-divwarning
Clang trunk recently gained this new warning, and complains about the sizeof(trim->data) / sizeof(struct nvme_dsm_range) expression, since the left hand side's element type (char) does not match the right hand side's type. The byte buffer is unnecessary so we can remove it to clean up the code and fix the warning at the same time.
No functional change.
Submitted by: James Clarke <jrtc27@jrtc27.com> Reviewed by: imp Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D21912
show more ...
|
Revision tags: release/11.3.0 |
|
#
9a696dc6 |
| 04-Apr-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead@r345880
|
#
154c6ffd |
| 02-Apr-2019 |
Alexander Motin <mav@FreeBSD.org> |
Build NVMe CAM transport unrelated to NVMe SIM.
Before this I suppose it was impossible load CAM-based NVMe as module. Plus this appeared to be needed to build r345815 without NVMe driver.
MFC afte
Build NVMe CAM transport unrelated to NVMe SIM.
Before this I suppose it was impossible load CAM-based NVMe as module. Plus this appeared to be needed to build r345815 without NVMe driver.
MFC after: 2 weeks
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 ...
|
#
87b3975e |
| 13-Dec-2018 |
Chuck Tuffli <chuck@FreeBSD.org> |
nda(4) fix check for Dataset Management support
In the nda(4) driver, only set DISKFLAG_CANDELETE (a.k.a. can support BIO_DELETE) if the drive supports Dataset Management. There are reports that wit
nda(4) fix check for Dataset Management support
In the nda(4) driver, only set DISKFLAG_CANDELETE (a.k.a. can support BIO_DELETE) if the drive supports Dataset Management. There are reports that without this check, VMWare Workstation does not work reliably.
Fix is to check the ONCS field in the NVMe Controller Data structure for support. This check previously existed but did not survive the big-endian changes.
Reported by: yuripv@yuripv.net Reviewed by: imp, mav, jimharris Approved by: imp (mentor) MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D18493
show more ...
|
Revision tags: release/12.0.0 |
|
#
fda9adaf |
| 27-Oct-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r339670 through r339812.
|
#
ea657f2c |
| 26-Oct-2018 |
Warner Losh <imp@FreeBSD.org> |
Add statistics for TRIM comands
Add a counter for the LBAs, Ranges and hardware commands so that we can provide additional color to the statistics we provide to vendors.
Sponsored by: Netflix, Inc
|
#
f053ca1f |
| 10-Aug-2018 |
Conrad Meyer <cem@FreeBSD.org> |
Walk back r337554 while discussion continues
The idea was to get the uncontroversial mechanical change out of the way, then get the meatier functional changes reviewed subsequently. I had not reali
Walk back r337554 while discussion continues
The idea was to get the uncontroversial mechanical change out of the way, then get the meatier functional changes reviewed subsequently. I had not realized that the immediately adjacent issue was addressed in a different direction in r334506 (see Warner's guidance in D15592).
Discussion continues, trying to determine if there is a secondary issue still[1] and how best to fix it. With 12-related activities coming up, while that is ongoing, just take this back for now.
[1]: Shutdown-time eventhandler events fire normally during panic's reboot path. Driver callbacks that attempt to issue and wait on interrupt- completed IO may never complete, hanging the system. This is particularly obnoxious in the shutdown/panic path, as the debugger cannot be entered anymore and the hang prevents reboot restoring availability.
(There's nothing CAM-specific about this problem -- any shutdown event-triggered driver could do something like this during panic. But most NICs, etc. don't try to send spin-down commands at shutdown. ;-))
Discussed with: imp, markj
show more ...
|
#
2077be2b |
| 09-Aug-2018 |
Conrad Meyer <cem@FreeBSD.org> |
cam(4): Add an xpt-neutral flag indicating a valid panic CCB
No functional change.
Note that this change is careful to set the CCB header xflags after foo_fill_bar() routines, which generally zero
cam(4): Add an xpt-neutral flag indicating a valid panic CCB
No functional change.
Note that this change is careful to set the CCB header xflags after foo_fill_bar() routines, which generally zero existing flags. An earlier version of this patch mistakenly set the flag before the fill routines.
Submitted by: Scott Ferris <sferris AT isilon.com>, jhibbits@ Reviewed by: bdrewery@, markj@, and non-committer FreeBSD contributor Anton Rang Sponsored by: Dell EMC Isilon
show more ...
|
Revision tags: release/11.2.0 |
|
#
b1988d44 |
| 24-May-2018 |
Warner Losh <imp@FreeBSD.org> |
We can't release the refcount outside of the periph lock.
We're dropping the periph lock then dropping the refcount. However, that violates the locking protocol and is racy. This seems to be the cau
We can't release the refcount outside of the periph lock.
We're dropping the periph lock then dropping the refcount. However, that violates the locking protocol and is racy. This seems to be the cause of weird occasional panics with a bogus assert.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D15517
show more ...
|
#
d9a7a61b |
| 16-May-2018 |
Warner Losh <imp@FreeBSD.org> |
Hold the reference count until the CCB is released
When a disk disappears and the periph is invalidated, any I/Os that are pending with the controller can cause a crash when they complete. Move to h
Hold the reference count until the CCB is released
When a disk disappears and the periph is invalidated, any I/Os that are pending with the controller can cause a crash when they complete. Move to holding the softc reference count taken in dastart() until the I/O is complete rather than only until xpt_action() returns. (This approach was suggested by Ken Merry.) This extends the method used in da to ada, nda, and mda.
Sponsored by: Netflix Submitted by: Chuck Silvers
show more ...
|
#
041f49ae |
| 09-May-2018 |
Warner Losh <imp@FreeBSD.org> |
Remove the 'All Rights Reserved' clause from some of the stuff I've done for Netflix, since I'm in the neighborhood.
|
#
400326b6 |
| 20-Mar-2018 |
Warner Losh <imp@FreeBSD.org> |
Kill assert I shouldn't have committed
|
#
afdbfe1e |
| 20-Mar-2018 |
Warner Losh <imp@FreeBSD.org> |
Starting LBA is a 64bit number, so use htole64 instead of htole32. The latter casts the LBA to a 32-bit number before assigning it to the 64 bit structure entity. This works fine on the first 2TB of
Starting LBA is a 64bit number, so use htole64 instead of htole32. The latter casts the LBA to a 32-bit number before assigning it to the 64 bit structure entity. This works fine on the first 2TB of TRIMs, but terrible beyond that due to trucation.
Also, add an assert to make sure we don't end too many DSM TRIM entries in one request.
Sponsored by: Netflix
show more ...
|
#
6f591d13 |
| 20-Mar-2018 |
Warner Losh <imp@FreeBSD.org> |
Make kern.cam.nda.num_trim tunable to limit the number of BIO_DELETE requests that we'll collapse into one DSM_TRIM. By default it is a 256, which is the max that will fit into a 4k page.
Sponsored
Make kern.cam.nda.num_trim tunable to limit the number of BIO_DELETE requests that we'll collapse into one DSM_TRIM. By default it is a 256, which is the max that will fit into a 4k page.
Sponsored by: Netflix
show more ...
|
#
fdfc0a83 |
| 20-Mar-2018 |
Warner Losh <imp@FreeBSD.org> |
Remove some redundant MPSAFE flags.
This was pointed out in a code review I'm having trouble finding right now, but go ahead and eliminate these.
Sponsored by: Netfix
|
#
d38677d2 |
| 14-Mar-2018 |
Warner Losh <imp@FreeBSD.org> |
Create a sysctl kern.cam.{,a,n}da.X.invalidate
kern.cam.{,a,n}da.X.invalidate=1 forces *daX to detach by calling cam_periph_invalidate on the underlying periph. This is for testing purposes only. In
Create a sysctl kern.cam.{,a,n}da.X.invalidate
kern.cam.{,a,n}da.X.invalidate=1 forces *daX to detach by calling cam_periph_invalidate on the underlying periph. This is for testing purposes only. Include only with options CAM_TEST_FAILURE and rename the former [AN]DA_TEST_FAILURE, and fix nda to compile with it set. We're using it at work to harden geom and the buffer cache to be resilient in the face of drive failure. Today, it far too often results in a panic. While much work was done on SIM initiated removal for the USB thumnb drive removal work, little has been done for periph initiated removal. This simulates what *daerror() does for some errors nicely: we get the same panics with it that we do with failing drives.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D14581
show more ...
|
#
807e94b2 |
| 14-Mar-2018 |
Warner Losh <imp@FreeBSD.org> |
Implement trim collapsing in nda
When multiple trims are in the queue, collapse them as much as possible. At present, this usually results in only a few trims being collapsed together, but more work
Implement trim collapsing in nda
When multiple trims are in the queue, collapse them as much as possible. At present, this usually results in only a few trims being collapsed together, but more work on that will make it possible to do hundreds (up to some configurable max).
Sponsored by: Netflix
show more ...
|
#
2e1fccf2 |
| 10-Mar-2018 |
Conrad Meyer <cem@FreeBSD.org> |
nvme_da: Fix minor memory leak in error case
Reported by: cppcheck Sponsored by: Dell EMC Isilon
|
#
0d787e9b |
| 22-Feb-2018 |
Wojciech Macek <wma@FreeBSD.org> |
NVMe: Add big-endian support
Remove bitfields from defined structures as they are not portable. Instead use shift and mask macros in the driver and nvmecontrol application.
NVMe is now working on p
NVMe: Add big-endian support
Remove bitfields from defined structures as they are not portable. Instead use shift and mask macros in the driver and nvmecontrol application.
NVMe is now working on powerpc64 host.
Submitted by: Michal Stanek <mst@semihalf.com> Obtained from: Semihalf Reviewed by: imp, wma Sponsored by: IBM, QCM Technologies Differential revision: https://reviews.freebsd.org/D13916
show more ...
|
#
0028abe6 |
| 22-Feb-2018 |
Warner Losh <imp@FreeBSD.org> |
Backout r329818, r329816 and r329815.
These aren't the commits I thought I was testing prior to commit. Revert until I can sort out what happened and fix it.
|
#
4d87e271 |
| 22-Feb-2018 |
Warner Losh <imp@FreeBSD.org> |
Combine BIO_DELETE requests for nda devices
Now that we're queueing BIO_DELETE requests in the CAM I/O scheduler, it make sense to try to combine as many as possible into a single request to send do
Combine BIO_DELETE requests for nda devices
Now that we're queueing BIO_DELETE requests in the CAM I/O scheduler, it make sense to try to combine as many as possible into a single request to send down to hardware. Hopefully, lots of larger requests like this are better than lots of individual transactions.
Note for future: need to limit based on total size of the trim request. Should also collapse adjacent ranges where possible to increase the size of the max payload.
Sponsored by: Netflix
show more ...
|
#
c5fe3ae9 |
| 22-Feb-2018 |
Warner Losh <imp@FreeBSD.org> |
Introduce capacity flags for periphs
Introduce flags word to describe the capacities of the peripheral. First bit will describe if the periph driver allows multiple outstanding TRIMS to be active in
Introduce capacity flags for periphs
Introduce flags word to describe the capacities of the peripheral. First bit will describe if the periph driver allows multiple outstanding TRIMS to be active in a device.
Modify the I/O scheduler so that the nda driver can queue trims for a while after the first one arrives. We'll queue until we see a I/O scheduler tick, then we'll schedule as many TRIMs as allowed by other factors (currently this is slocts in the NVMe controller). This mariginally helps the read latency issues we see with reads, but sets the stage for the nda driver to do TRIM collapsing like the da and ada drivers do today.
Sponsored by: Netflix
show more ...
|
#
6ffe523f |
| 22-Feb-2018 |
Warner Losh <imp@FreeBSD.org> |
Minor formatting nits.
|