#
dc1c1769 |
| 11-Nov-2019 |
Warner Losh <imp@FreeBSD.org> |
Update the softc state of the da driver before releasing the CCB.
There are contexts where releasing the ccb triggers dastart() to be run inline. When da was written, there was always a deferral, so
Update the softc state of the da driver before releasing the CCB.
There are contexts where releasing the ccb triggers dastart() to be run inline. When da was written, there was always a deferral, so it didn't matter much. Now, with direct dispatch, we can call dastart from the dadone* routines. If the probe state isn't updated, then dastart will redo things with stale information. This normally isn't a problem, because we run the probe state machine once at boot... Except that we also run it for each open of the device, which means we can have multiple threads racing each other to try to kick off the probe. However, if we update the state before we release the CCB, we can avoid the race. While it's needed only for the probewp and proberc* states, do it everywhere because it won't hurt the other places.
The race here happens because we reprobe dozens of times on boot when drives have lots of partitions. We should consider caching this info for 1-2 seconds to avoid this thundering hurd.
Reviewed by: scottl, ken Differential Revision: https://reviews.freebsd.org/D22295
show more ...
|
#
fe95666b |
| 11-Nov-2019 |
Warner Losh <imp@FreeBSD.org> |
Require and enforce that dareprobe() has to be called with the periph lock held.
Reviewed by: scottl, ken Differential Revision: https://reviews.freebsd.org/D22295
|
#
fb6ea34a |
| 11-Nov-2019 |
Warner Losh <imp@FreeBSD.org> |
Fix panic message to indicate right action that was improper.
Reviewed by: scottl, ken Differential Revision: https://reviews.freebsd.org/D22295
|
#
b5961be1 |
| 09-Nov-2019 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
Add GEOM attribute to report physical device name, and report it via 'diskinfo -v'. This avoids the need to track it down via CAM, and should also work for disks that don't use CAM. And since it's
Add GEOM attribute to report physical device name, and report it via 'diskinfo -v'. This avoids the need to track it down via CAM, and should also work for disks that don't use CAM. And since it's inherited thru the GEOM hierarchy, in most cases one doesn't need to walk the GEOM graph either, eg you can use it on a partition instead of disk itself.
Reviewed by: allanjude, imp Sponsored by: Klara Inc Differential Revision: https://reviews.freebsd.org/D22249
show more ...
|
#
34a5c41c |
| 26-Sep-2019 |
Alexander Motin <mav@FreeBSD.org> |
Add kern.cam.da.X.quirks tunable, similar existing for ada.
Submitted by: Michael Lass MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D20677
|
#
a9154c1c |
| 25-Jun-2019 |
Warner Losh <imp@FreeBSD.org> |
Replay r349342 by imp accidentally reverted by r349352
Use the cam_ed copy of ata_params rather than malloc and freeing memory for it. This reaches into internal bits of xpt a little, and I'll clean
Replay r349342 by imp accidentally reverted by r349352
Use the cam_ed copy of ata_params rather than malloc and freeing memory for it. This reaches into internal bits of xpt a little, and I'll clean that up later.
show more ...
|
#
296218d4 |
| 25-Jun-2019 |
Warner Losh <imp@FreeBSD.org> |
Replay r349340 by imp accidentally reverted by r349352
Create ata_param_fixup
Create a common fixup routine to do the canonical fixup of the ata_param fixup. Call it from both the ATA and the ATA o
Replay r349340 by imp accidentally reverted by r349352
Create ata_param_fixup
Create a common fixup routine to do the canonical fixup of the ata_param fixup. Call it from both the ATA and the ATA over SCSI paths.
show more ...
|
#
f5a95d9a |
| 25-Jun-2019 |
Warner Losh <imp@FreeBSD.org> |
Remove NAND and NANDFS support
NANDFS has been broken for years. Remove it. The NAND drivers that remain are for ancient parts that are no longer relevant. They are polled, have terrible performance
Remove NAND and NANDFS support
NANDFS has been broken for years. Remove it. The NAND drivers that remain are for ancient parts that are no longer relevant. They are polled, have terrible performance and just for ancient arm hardware. NAND parts have evolved significantly from this early work and little to none of it would be relevant should someone need to update to support raw nand. This code has been off by default for years and has violated the vnode protocol leading to panics since it was committed.
Numerous posts to arch@ and other locations have found no actual users for this software.
Relnotes: Yes No Objection From: arch@ Differential Revision: https://reviews.freebsd.org/D20745
show more ...
|
#
97ad52ca |
| 24-Jun-2019 |
Warner Losh <imp@FreeBSD.org> |
Use the cam_ed copy of ata_params rather than malloc and freeing memory for it. This reaches into internal bits of xpt a little, and I'll clean that up later.
|
#
2afaed2d |
| 24-Jun-2019 |
Warner Losh <imp@FreeBSD.org> |
Create ata_param_fixup
Create a common fixup routine to do the canonical fixup of the ata_param fixup. Call it from both the ATA and the ATA over SCSI paths.
|
#
5a9170aa |
| 22-Apr-2019 |
Alexander Motin <mav@FreeBSD.org> |
Report DIF protection type the disk is formatted with.
Some disks formatted with protection report errors if written without protection used. This should help to diagnose the problem.
MFC after: 2
Report DIF protection type the disk is formatted with.
Some disks formatted with protection report errors if written without protection used. This should help to diagnose the problem.
MFC after: 2 weeks
show more ...
|
#
3899afd3 |
| 11-Mar-2019 |
Warner Losh <imp@FreeBSD.org> |
Upgrade Chipfancier SLC quirk to all versions
The 16GB, 32GB and 128GB versions of this product all have the same problem. For some reason, the RC10 size is correct, while the RC16 size is larger (o
Upgrade Chipfancier SLC quirk to all versions
The 16GB, 32GB and 128GB versions of this product all have the same problem. For some reason, the RC10 size is correct, while the RC16 size is larger (oddly by the capacity size / 1024 bytes). Using the RC16 size results in illegal LBA range errors when geom tastes the device. So, expand the quirk to cover all versions of this chip.
Ideally, we'd get both READ CAPACITY 10 and READ CAPACITY 16 sizes and print a warnnig if they differ and use the smaller of the two numbers, though that may be problematical as well. Furthermore, SBC-4 encourages users transition to RC16 only, which suggests that in the future RC10 may disappear from some drives. It's unclear how to cope with these drives generically.
PR: 234503 MFC After: 1 week
show more ...
|
#
a49077d3 |
| 05-Feb-2019 |
Warner Losh <imp@FreeBSD.org> |
Add quirk for Sansisk X400 drives
Certain versions of Sandisk x400 firmware can hang under extremely heavly load of large I/Os for prolonged periods of time. Newer / current versions work fine, and
Add quirk for Sansisk X400 drives
Certain versions of Sandisk x400 firmware can hang under extremely heavly load of large I/Os for prolonged periods of time. Newer / current versions work fine, and should be used where possible. Where not possible, this quirk ensures that I/O requests are limited to 128k to avoids the bug, even under extreme load. Since MAXPHYS is 128k, only users with custom kernels are at risk on the older firmware. Once all known users of the older firmware have upgraded, this quirk will be removed.
Sponsored by: Netflix, Inc.
show more ...
|
#
441a6b69 |
| 30-Jan-2019 |
Alexander Motin <mav@FreeBSD.org> |
Remove stale now comment, forgotten in r343582.
MFC after: 2 weeks
|
#
a5fde7ef |
| 30-Jan-2019 |
Alexander Motin <mav@FreeBSD.org> |
Relax BIO_FLUSH ordering in da(4), respecting BIO_ORDERED.
r212160 tightened this from always using MSG_SIMPLE_Q_TAG to always MSG_ORDERED_Q_TAG. Since it also marked all BIO_FLUSH requests with BI
Relax BIO_FLUSH ordering in da(4), respecting BIO_ORDERED.
r212160 tightened this from always using MSG_SIMPLE_Q_TAG to always MSG_ORDERED_Q_TAG. Since it also marked all BIO_FLUSH requests with BIO_ORDERED, this commit changes nothing immediately, but it returns BIO_FLUSH callers ability to actually specify ordering they really need, alike to other request types.
MFC after: 2 weeks Sponsored by: iXsystems, Inc.
show more ...
|
#
4dafe01e |
| 27-Jan-2019 |
Andriy Voskoboinyk <avos@FreeBSD.org> |
Add NO_6_BYTE / NO_SYNC_CACHE quirks for (C|D|E).* Olympus digital cameras
PR: 97472 Submitted by: Fabio Luis Girardi <papelhigienico@gmail.com> Reviewed by: imp MFC after: 3 weeks
|
#
3f41bec2 |
| 08-Jan-2019 |
Warner Losh <imp@FreeBSD.org> |
Add NO_SYNC_CACHE quirk for PENTAX cameras
PR: 93389 Submitted by: Demin Alexander
|
#
e11ed26a |
| 31-Dec-2018 |
Warner Losh <imp@FreeBSD.org> |
Add NO_RC16 quirk for Chipfancier 16GB USB stick...
Submitted by: osef.lar@gmail.com PR: 234503
|
#
5b7f9fad |
| 17-Dec-2018 |
Andriy Gapon <avg@FreeBSD.org> |
add a knob that disables detection of write protected disks
It has been reported that on some systems (with real hardware passed through to a virtual machine) the WP detection causes USB disk probin
add a knob that disables detection of write protected disks
It has been reported that on some systems (with real hardware passed through to a virtual machine) the WP detection causes USB disk probing failures.
While here, also fix the selection of the next state in the case of malloc failure in DA_STATE_PROBE_WP. It was DA_STATE_PROBE_RC unconditionally even when it should have been DA_STATE_PROBE_RC16.
PR: 225794 Reported by: David Boyd <David.Boyd49@twc.com> MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D18496
show more ...
|
#
2e2b365e |
| 07-Dec-2018 |
Andriy Gapon <avg@FreeBSD.org> |
daprobedone: announce if a disk is write-protected
MFC after: 2 weeks
|
#
ee7eba24 |
| 14-Nov-2018 |
Warner Losh <imp@FreeBSD.org> |
Remove trailing white space in advance of other changes.
|
#
74c0112f |
| 05-Nov-2018 |
Warner Losh <imp@FreeBSD.org> |
Only assert locked for many async events.
Many async events that we see are called for this specific path. When calling an async callback for a targetted device, XTP will lock that specific device's
Only assert locked for many async events.
Many async events that we see are called for this specific path. When calling an async callback for a targetted device, XTP will lock that specific device's path lock (same as what cam_periph_lock does). For those AC_ events, assert we have the lock rather than trying to recusrively take it (which causes panics since it's not recursive).
Add annotations about this and about the fact that AC_SCSI_AEN events are generated now only in the ata stack (which cannot have a scsi_da attachment). Leave it in place in case I've overlooked something as the code is harmless.
This is fallout from my attempts to "fix" locking for softc->flags in r330796 that's not been triggered often enough to get my attention until now.
Sponsored by: Netflix MFC After: 3 days Differential Revision: https://reviews.freebsd.org/D17837
show more ...
|
#
9385e92b |
| 01-Nov-2018 |
Warner Losh <imp@FreeBSD.org> |
Add comments explaining what hold/unhold do
They act as a simple one-deep semaphore to keep open/close/probe from running at the same time to avoid races that creates.
|
#
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
|
#
aabac0c1 |
| 01-Oct-2018 |
Kenneth D. Merry <ken@FreeBSD.org> |
Fix a da(4) driver memory leak for SCSI SMR devices.
In the probe case for SCSI SMR Host Aware or Most Managed drives, be sure to free allocated memory.
sys/cam/scsi/scsi_da.c: In dadone_probezone
Fix a da(4) driver memory leak for SCSI SMR devices.
In the probe case for SCSI SMR Host Aware or Most Managed drives, be sure to free allocated memory.
sys/cam/scsi/scsi_da.c: In dadone_probezone(), free the data pointer before returning.
MFC after: 3 days Sponsored by: Spectra Logic Approved by: re (kib)
show more ...
|