#
44e86fbd |
| 13-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357662 through r357854.
|
#
efb17c5a |
| 13-Feb-2020 |
Warner Losh <imp@FreeBSD.org> |
Use INT instead of string for the ints. Because the string "I" was right, the old code appeared to work. This was a cut and paste error.
Noticed by: rpokala@
|
#
0c8ea9e5 |
| 13-Feb-2020 |
Warner Losh <imp@FreeBSD.org> |
Convert rotating and unmapped_io to a DA flag
Rotating and unmapped_io are really da flags. Convert them to a flag so it will be reported with the other flags for the device. Deprecate the .rotating
Convert rotating and unmapped_io to a DA flag
Rotating and unmapped_io are really da flags. Convert them to a flag so it will be reported with the other flags for the device. Deprecate the .rotating and .unmapped_io sysctls in FreeBSD 14 and remove the softc ints.
Differential Revision: https://reviews.freebsd.org/D23417
show more ...
|
#
a8d238cd |
| 13-Feb-2020 |
Warner Losh <imp@FreeBSD.org> |
Export the current da flags as bitfield
Export the current flags. They can be useful to other programs wanting to do special thigns for removable or similar devices.
Differential Revision: https://
Export the current da flags as bitfield
Export the current flags. They can be useful to other programs wanting to do special thigns for removable or similar devices.
Differential Revision: https://reviews.freebsd.org/D23417
show more ...
|
#
85eb41f7 |
| 10-Feb-2020 |
Scott Long <scottl@FreeBSD.org> |
Revert r357710 and 357711 until they can be debugged
|
#
7d99bda7 |
| 10-Feb-2020 |
Scott Long <scottl@FreeBSD.org> |
Add rudamentary support for UFS to probe whether a block device supports the BIO_SPEEDUP command. Add complimentary support to the CAM periphs that support it.
|
#
bc02c18c |
| 07-Feb-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357408 through r357661.
|
#
d176b803 |
| 07-Feb-2020 |
Scott Long <scottl@FreeBSD.org> |
Ever since the block layer expanded its command syntax beyond just BIO_READ and BIO_WRITE, we've handled this expanded syntax poorly in drivers when the driver doesn't support a particular command.
Ever since the block layer expanded its command syntax beyond just BIO_READ and BIO_WRITE, we've handled this expanded syntax poorly in drivers when the driver doesn't support a particular command. Do a sweep and fix that.
Reported by: imp
show more ...
|
#
bb1d0df5 |
| 29-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r357179 through r357269.
|
#
827bea26 |
| 29-Jan-2020 |
Warner Losh <imp@FreeBSD.org> |
Fix spelling of removable
|
#
83b75bb3 |
| 16-Dec-2019 |
Warner Losh <imp@FreeBSD.org> |
Revert r355813
It was extracted from a larger tree and is incomplete. Will resubmit after reworking.
|
#
68e1c49a |
| 16-Dec-2019 |
Warner Losh <imp@FreeBSD.org> |
Implement a system-wide limit or da and ada devices for delete.
Excesively large TRIMs can result in timeouts, which cause big problems. Limit trims to 1GB to mititgate these issues.
Reviewed by: s
Implement a system-wide limit or da and ada devices for delete.
Excesively large TRIMs can result in timeouts, which cause big problems. Limit trims to 1GB to mititgate these issues.
Reviewed by: scottl Differential Revision: https://reviews.freebsd.org/D22809
show more ...
|
#
5773ac11 |
| 10-Dec-2019 |
John Baldwin <jhb@FreeBSD.org> |
Use callout_func_t instead of the deprecated timeout_t.
Reviewed by: kib, imp Differential Revision: https://reviews.freebsd.org/D22752
|
#
02fa548c |
| 13-Nov-2019 |
Warner Losh <imp@FreeBSD.org> |
Fix a race between daopen and damediapoll
When we do a daopen, we call dareprobe and wait for the results. The repoll runs the da state machine up through the DA_STATE_RC* and then exits.
For remov
Fix a race between daopen and damediapoll
When we do a daopen, we call dareprobe and wait for the results. The repoll runs the da state machine up through the DA_STATE_RC* and then exits.
For removable media, we poll the device every 3 seconds with a TUR to see if it has disappeared. This introduces a race. If the removable device has lots of partitions, and if it's a little slow (like say a USB2 connected USB stick), then we can have a fair amount of time that this reporbe is going on for. If, during that time, damediapoll fires, it calls daschedule which changes the scheduling priority from NONE to NORMAL. When that happens, the careful single stepping in the da state machine is disrupted and we wind up sceduling multiple read capacity calls. The first one succeeds and releases the reference. The second one succeeds and releases the reference (and panics if the right code is compiled into the da driver).
To avoid the race, only do the TUR calls while in state normal, otherwise just reschedule damediapoll. This prevents the race from happening.
show more ...
|
#
45fceedf |
| 11-Nov-2019 |
Warner Losh <imp@FreeBSD.org> |
Add asserts for some state transitions
For the PROBEWP and PROBERC* states, add assertiosn that both the da device state is in the right state, as well as the ccb state is the right one when we ente
Add asserts for some state transitions
For the PROBEWP and PROBERC* states, add assertiosn that both the da device state is in the right state, as well as the ccb state is the right one when we enter dadone_probe{wp,rc}. This will ensure that we don't sneak through when we're re-probing the size and write protection status of the device and thereby leak a reference which can later lead to an invalidated peripheral going away before all references are released (and resulting panic).
Reviewed by: scottl, ken Differential Revision: https://reviews.freebsd.org/D22295
show more ...
|
#
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 ...
|
Revision tags: release/12.1.0 |
|
#
668ee101 |
| 26-Sep-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r352587 through r352763.
|
#
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
|
Revision tags: release/11.3.0 |
|
#
7f49ce7a |
| 28-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @349476
Sponsored by: The FreeBSD Foundation
|
#
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 ...
|