#
a8b49e7c |
| 17-Jan-2025 |
Warner Losh <imp@FreeBSD.org> |
cam: Add 3e/3 as a fatal code
We see this error:
(da4:mps0:0:3:0): SCSI sense: HARDWARE FAILURE asc:3e,3 (Logical unit failed self-test)
for drives that have failed. Our vendor tells us there's no
cam: Add 3e/3 as a fatal code
We see this error:
(da4:mps0:0:3:0): SCSI sense: HARDWARE FAILURE asc:3e,3 (Logical unit failed self-test)
for drives that have failed. Our vendor tells us there's no recovery from that state, though we can still grab logs from the drives and run their diagnostics. Drives in this state need to bascially be remanufactured because some part of them has failed. The prior default behavior is to retry, and retrying takes a long time to work out. Instead, short-circuit the retries and fail right away. I selected ENXIO because no I/O to LBAs is possible for drives in this state (both my experience and per vendor). Some googling suggests that other vendors behave identically, but it was inconclusive. Should this be too pessimistic, we can adjust in the future. Also, this is with some aging drives in our fleet, and if we have more than one drive in this state, our systems take so long to get to mountroot that the watchdog fires sometimes. Adding this patch makes them boot reliably again.
MFC After: 1 week Sponsored by: Netflix Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D48505
show more ...
|
Revision tags: release/14.2.0 |
|
#
c1cc3d96 |
| 22-Oct-2024 |
Warner Losh <imp@FreeBSD.org> |
scsi: Make asc/ascq 44/0 fatal with ENXIO
44/0: INTERNAL TARGET FAILURE
Several different HGST/WD hard disks report this during geom tasting. Several vendor manuals indicate this is not recoverable
scsi: Make asc/ascq 44/0 fatal with ENXIO
44/0: INTERNAL TARGET FAILURE
Several different HGST/WD hard disks report this during geom tasting. Several vendor manuals indicate this is not recoverable as well, though are a bit coy as to whether it's permanant for all I/O or just for this particular one. An internet search resolves the ambiguity in favor of permanant error more generally, rather than for a specific LBA or LBA range.
This has the side effect of speeding up boot for systems that have drives that have failed with this symptom.
Sponsored by: Netflix
show more ...
|
Revision tags: release/13.4.0, release/14.1.0, release/13.3.0 |
|
#
519b24f0 |
| 23-Nov-2023 |
Alexander Motin <mav@FreeBSD.org> |
CAM: Replace random sbuf_printf() with cheaper cat/putc.
|
Revision tags: release/14.0.0 |
|
#
2ffd30f7 |
| 06-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
cam: Remove left-over sys/cdefs.h in sys/cam
These weren't removed when $FreeBSD$ was removed. They aren't needed and now are a style(9) nonconformity.
Sponsored by: Netflix
|
#
e2ad7ce3 |
| 09-Oct-2023 |
Zhenlei Huang <zlei@FreeBSD.org> |
cam/scsi: Add sysctl flag CTLFLAG_TUN to loader tunable
The sysctl variable 'kern.cam.scsi_delay' is actually a loader tunable. Add sysctl flag CTLFLAG_TUN to it so that `sysctl -T` will report it c
cam/scsi: Add sysctl flag CTLFLAG_TUN to loader tunable
The sysctl variable 'kern.cam.scsi_delay' is actually a loader tunable. Add sysctl flag CTLFLAG_TUN to it so that `sysctl -T` will report it correctly.
No functional change intended.
Reviewed by: kib, imp (for #cam) MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D42113
show more ...
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
78721316 |
| 28-Jul-2023 |
Warner Losh <imp@FreeBSD.org> |
cam: Fail 2/0 asc/ascq return code
This asc/ascq code 2/0 ("No seek complete") is a fatal error on modern drives indicating a sensor failure. One of our vendors noticed we retried 2/0 so many times
cam: Fail 2/0 asc/ascq return code
This asc/ascq code 2/0 ("No seek complete") is a fatal error on modern drives indicating a sensor failure. One of our vendors noticed we retried 2/0 so many times in their failure analysis and asked why (no other OS else does). They've indicated that this failures means the track couldn't be located (something that's not going to change, except if the environment changes significantly, which won't happen on a timescale useful to retries).
Sponsored by: Netflix
show more ...
|
#
7c5d20a6 |
| 25-Jul-2023 |
Warner Losh <imp@FreeBSD.org> |
cam/scsi: Migrate to modern uintXX_t from u_intXX_t
As per https://lists.freebsd.org/archives/freebsd-scsi/2023-July/000257.html move to the modern uintXX_t.
MFC After: 3 days Sponsored by: Netflix
|
#
367699ca |
| 21-Jul-2023 |
Warner Losh <imp@FreeBSD.org> |
cam/scsi: Better action for ASC/ASCQ 0x18/0x08
0x18/0x8 is another code to indicate that the data was recovered successfully, so complete the command w/o an error rather than retry the operation.
S
cam/scsi: Better action for ASC/ASCQ 0x18/0x08
0x18/0x8 is another code to indicate that the data was recovered successfully, so complete the command w/o an error rather than retry the operation.
Sponsored by: Netflix Reviewed by: mav, jhb Differential Revision: https://reviews.freebsd.org/D41082
show more ...
|
#
e6f37dce |
| 23-Jun-2023 |
Warner Losh <imp@FreeBSD.org> |
scsi_all.c: Update to latest asc-num.txt at T10
This updates our table to Sat Mar 25 2023 at 04:30 of the T10 asc-num.txt. I added all the codes that weren't present in the tree, corrected a couple
scsi_all.c: Update to latest asc-num.txt at T10
This updates our table to Sat Mar 25 2023 at 04:30 of the T10 asc-num.txt. I added all the codes that weren't present in the tree, corrected a couple of the 'alphabet' comments about where the ASC/ASCQ was defined. I did not, however, make the transition that the asc-num.txt file made (it deleted W between P and R and added Z after D so the first few letters shifted a bit). I've not removed the 'W' nor added the 'Z' at this time. I'm looking for some way to do this automatically. Try to pick reasonable responses for new entries. When in doubt, I selected SS_RDEF.
Sponsored by: Netflix Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D40718
show more ...
|
#
92c8803c |
| 23-Jun-2023 |
Warner Losh <imp@FreeBSD.org> |
scsi_all.c: Minor formatting nits
Noticed the whitespace nits when updating for other reasons.
Sponsored by: Netflix
|
#
4d846d26 |
| 10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD
The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause.
Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
show more ...
|
Revision tags: release/13.2.0, release/12.4.0, release/13.1.0 |
|
#
757089f0 |
| 31-Dec-2021 |
Alexander Motin <mav@FreeBSD.org> |
CAM: List few missed opcodes.
MFC after: 1 weeks
|
Revision tags: release/12.3.0 |
|
#
da739265 |
| 18-Sep-2021 |
Warner Losh <imp@FreeBSD.org> |
libcam: Define depop structures and introduce scsi_wrap
Define structures related to the depop set of commands (GET PHYSICAL ELEMENT STATUS, REMOVE ELEMENT AND TRUNCATE, and RESTORE ELEMENT AND REBU
libcam: Define depop structures and introduce scsi_wrap
Define structures related to the depop set of commands (GET PHYSICAL ELEMENT STATUS, REMOVE ELEMENT AND TRUNCATE, and RESTORE ELEMENT AND REBUILD) as well as the CDB construction routines.
Also create scsi_wrap.c. This will have convenience routines that will do all the elements of allocating the ccb, generating the CDB, sending the command (looping as necessary for cases where data is returned, but it's size isn't known up front), etc. As this functionality is fleshed out, calling many camcontrol commands programatically gets much easier.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D29017
show more ...
|
#
34f620f1 |
| 14-Aug-2021 |
Gordon Bergling <gbe@FreeBSD.org> |
Fix a few typos in source code comments
- s/posbile/possible/
MFC after: 5 days
|
#
303477d3 |
| 11-Aug-2021 |
Alexander Motin <mav@FreeBSD.org> |
cam(4): Mark all sysctls as CTLFLAG_MPSAFE.
This code does not use Giant lock for very long time.
MFC after: 2 weeks
|
Revision tags: release/13.0.0 |
|
#
34d69611 |
| 26-Feb-2021 |
Warner Losh <imp@FreeBSD.org> |
cam: add new ASC and ASCQ values related to drive depopulation
Add 04/25 Depopulation restoration in progress, 31/04 Depopulation failed, and 31/05 Depopulation restoration failed.
These are define
cam: add new ASC and ASCQ values related to drive depopulation
Add 04/25 Depopulation restoration in progress, 31/04 Depopulation failed, and 31/05 Depopulation restoration failed.
These are defined in SPC-6r2 (though 31/4 was added in an earlier draft). They relate to different aspects of in-progress or failed depopulation removal and restoration commands.
show more ...
|
Revision tags: release/12.2.0 |
|
#
cd500da9 |
| 14-Oct-2020 |
Alexander Motin <mav@FreeBSD.org> |
Fix sbuf_finish() error code check in user-space.
MFC after: 1 week Sponsored by: iXsystems, Inc.
|
#
27dcd3d9 |
| 02-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
cam: clean up empty lines in .c and .h files
|
Revision tags: release/11.4.0 |
|
#
37096740 |
| 20-Mar-2020 |
Ed Maste <emaste@FreeBSD.org> |
sys/cam: remove doubled ;s
|
#
75dfc66c |
| 27-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r358269 through r358399.
|
#
7029da5c |
| 26-Feb-2020 |
Pawel Biernacki <kaktus@FreeBSD.org> |
Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly mark
Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (17 of many)
r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes.
This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags.
Mark all obvious cases as MPSAFE. All entries that haven't been marked as MPSAFE before are by default marked as NEEDGIANT
Approved by: kib (mentor, blanket) Commented by: kib, gallatin, melifaro Differential Revision: https://reviews.freebsd.org/D23718
show more ...
|
#
cc453b22 |
| 20-Nov-2019 |
Alexander Motin <mav@FreeBSD.org> |
Set handling for some "Logical unit not ready" errors.
MFC after: 2 weeks Sponsored by: iXsystems, Inc.
|
Revision tags: release/12.1.0 |
|
#
f993ed2f |
| 09-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r351732 through r352104.
|
#
16614d35 |
| 07-Sep-2019 |
Alexander Motin <mav@FreeBSD.org> |
Supply SAT layer with valid transfer sizes.
This is a rework of r344701, that noticed that number of bytes passes to 8 bit sector count field gets truncated. First decision was to not pass anything
Supply SAT layer with valid transfer sizes.
This is a rework of r344701, that noticed that number of bytes passes to 8 bit sector count field gets truncated. First decision was to not pass anything, since ATA specs define the field as N/A. But it appeared to be a problem for some SAT devices, that require information about data transfer to operate properly. Some additional investigation shown that it is quite a common practice to set unused fields of ATA commands (fortunately ATA specs formally allow it) to supply the information to SAT layer. I have found SAS-SATA interposer that does not allow pass-through without it.
As side effect, reduce code duplication by removing ata_do_28bit_cmd() function, replacing it with more universal ata_do_cmd().
MFC after: 1 week Sponsored by: iXsystems, Inc.
show more ...
|