#
9cbf3d61 |
| 20-Jul-2024 |
Warner Losh <imp@FreeBSD.org> |
cam/iosched: Make each periph driver provide schedule fnp
When we init the iosched instance, require clients to provide a schedule function. We have almost, but not quite everything to know when it
cam/iosched: Make each periph driver provide schedule fnp
When we init the iosched instance, require clients to provide a schedule function. We have almost, but not quite everything to know when it is safe to schedule new I/O. The periph drivers, however, have all the information, so make them do it when the I/O Scheduler needs to maybe schedule I/O for rate limiting, etc. and use it to do that.
Sponsored by: Netflix Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D46038
show more ...
|
#
6f1dd607 |
| 20-Jul-2024 |
Warner Losh <imp@FreeBSD.org> |
cam/iosched: Pass in the disk when initializing
The disk is nice to have at times, especially when you need the sector size. At present, the only plans for this are related to logging.
Sponsored by
cam/iosched: Pass in the disk when initializing
The disk is nice to have at times, especially when you need the sector size. At present, the only plans for this are related to logging.
Sponsored by: Netflix Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D46035
show more ...
|
Revision tags: release/14.1.0, release/13.3.0, release/14.0.0 |
|
#
95ee2897 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
Revision tags: release/13.2.0, release/12.4.0 |
|
#
891c6986 |
| 08-Oct-2022 |
Warner Losh <imp@FreeBSD.org> |
cam: Use FreeBSD standard copyright
For CAM, move to the FreeBSD standard copyright rather than the 'put it at the front' variation. This variaiton has been flagged as potentially problematic in oth
cam: Use FreeBSD standard copyright
For CAM, move to the FreeBSD standard copyright rather than the 'put it at the front' variation. This variaiton has been flagged as potentially problematic in other contexts. Since this variation wasn't a conscious decision on our part, use the standard license from src/COPYRIGHT. Also, remove the -FreeBSD suffix in SPDX-License-Identifier. It's obsolete at SPDX and even the original text didn't match it.
MFC After: 3 days Sponsored by: Netflix
show more ...
|
Revision tags: release/13.1.0, release/12.3.0, release/13.0.0, release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0 |
|
#
67350cb5 |
| 09-Dec-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r340918 through r341763.
|
Revision tags: release/12.0.0 |
|
#
d900ade5 |
| 27-Nov-2018 |
Warner Losh <imp@FreeBSD.org> |
NVME trim clocking
Add the ability to set two goals for trims in the I/O scheduler. The first goal is the number of BIO_DELETEs to accumulate (kern.cam.XX.U.trim_goal). When non-zero, this many trim
NVME trim clocking
Add the ability to set two goals for trims in the I/O scheduler. The first goal is the number of BIO_DELETEs to accumulate (kern.cam.XX.U.trim_goal). When non-zero, this many trims will be accumulated before we start to transfer them to lower layers. This is useful for devices that like to get lots of trims all at once in one transaction (not all devices are like this, and some vary by workload).
The second is a number of ticks to defer trims. If you've set a trim goal, then kern.cam.XX.U.trim_ticks controls how long the system will defer those trims before timing out and sending them anyway. It has no effect when trim_goal is 0.
In any event, a BIO_FLUSH will cause all the TRIMs to be released to the periph drivers. This may be a minor overloading of what BIO_FLUSH is supposed to mean, but it's useful to preserve other ordering semantics that users of BIO_FLUSH reply on.
Sponsored by: Netflix, Inc
show more ...
|
#
3d5db455 |
| 24-Nov-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r340427 through r340868.
|
#
e5436ab5 |
| 15-Nov-2018 |
Warner Losh <imp@FreeBSD.org> |
Add cam_iosched_set_latfcn to set a latency callback for high latency.
It's often useful to have a callback when an I/O takes more than a threshold amount of time. This adds the infrastructure for p
Add cam_iosched_set_latfcn to set a latency callback for high latency.
It's often useful to have a callback when an I/O takes more than a threshold amount of time. This adds the infrastructure for periph devices to register one.
One use-case is as a debugging aide when you need a semi-realtime indication of an I/O outlier so you can trigger bus capture gear for vendor analysis.
Sponsored by: Netflix, Inc
show more ...
|
Revision tags: release/11.2.0 |
|
#
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.
|
#
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.
|
#
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 ...
|
#
f24882ec |
| 17-Jan-2018 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
SPDX: finish tagging sys/cam.
|
Revision tags: release/10.4.0 |
|
#
b754c279 |
| 13-Sep-2017 |
Navdeep Parhar <np@FreeBSD.org> |
MFH @ r323558.
|
#
1be4c195 |
| 25-Aug-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r322870
|
#
e4c9cba7 |
| 25-Aug-2017 |
Warner Losh <imp@FreeBSD.org> |
Fix 32-bit overflow on latency measurements
o Allow I/O scheduler to gather times on 32-bit systems. We do this by shifting the sbintime_t over by 8 bits and truncating to 32-bits. This gives us 8
Fix 32-bit overflow on latency measurements
o Allow I/O scheduler to gather times on 32-bit systems. We do this by shifting the sbintime_t over by 8 bits and truncating to 32-bits. This gives us 8.24 time. This is sufficient both in range (256 seconds is about 128x what current users need) and precision (60ns easily meets the 1ms smallest bucket size measurements). 64-bit systems are unchanged. Centralize all the time math so it's easy to tweak tha range / precision tradeoffs in the future. o While I'm here, the I/O scheduler should be using periph_data rather than sim_data since it is operating on behalf of the periph.
Differential Review: https://reviews.freebsd.org/D12119
show more ...
|
Revision tags: release/11.1.0 |
|
#
721fc9d8 |
| 16-Jan-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r312207 through r312308.
|
#
a61b4567 |
| 16-Jan-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r312305
|
#
1d64db52 |
| 15-Jan-2017 |
Conrad Meyer <cem@FreeBSD.org> |
Fix a variety of cosmetic typos and misspellings
No functional change.
PR: 216096, 216097, 216098, 216101, 216102, 216106, 216109, 216110 Reported by: Bulat <bltsrc at mail.ru> Sponsored by: Dell
Fix a variety of cosmetic typos and misspellings
No functional change.
PR: 216096, 216097, 216098, 216101, 216102, 216106, 216109, 216110 Reported by: Bulat <bltsrc at mail.ru> Sponsored by: Dell EMC Isilon
show more ...
|
Revision tags: release/11.0.1, release/11.0.0 |
|
#
0edd2576 |
| 16-Apr-2016 |
Glen Barber <gjb@FreeBSD.org> |
MFH
Sponsored by: The FreeBSD Foundation
|
#
ba6c22ce |
| 15-Apr-2016 |
Warner Losh <imp@FreeBSD.org> |
Add in missing files from r298002.
|