Revision tags: release/11.3.0 |
|
#
9a696dc6 |
| 04-Apr-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead@r345880
|
#
99bad9ca |
| 02-Apr-2019 |
Alexander Motin <mav@FreeBSD.org> |
Unify SCSI_STATUS_BUSY retry handling with other cases.
- Do not retry if periph was invalidated. - Do not decrement retry_count if already zero. - Report action_string when applicable.
MFC afte
Unify SCSI_STATUS_BUSY retry handling with other cases.
- Do not retry if periph was invalidated. - Do not decrement retry_count if already zero. - Report action_string when applicable.
MFC after: 2 weeks
show more ...
|
#
415e34c4 |
| 29-Mar-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead@r345677
|
#
b059686a |
| 28-Mar-2019 |
Alexander Motin <mav@FreeBSD.org> |
Do not map small IOCTL buffers to KVA, but copy.
CAM IOCTL interfaces traditionally mapped user-space data buffers to KVA. It was nice originally, but now it takes too much to handle respective TLB
Do not map small IOCTL buffers to KVA, but copy.
CAM IOCTL interfaces traditionally mapped user-space data buffers to KVA. It was nice originally, but now it takes too much to handle respective TLB shootdowns, while small kernel memory allocations up to 64KB backed by UMA and accompanied by copyin()/copyout() can be much cheaper.
For large buffers mapping still may have sense, and unmapped I/O would be even better, but the last unfortunately is more tricky, since unmapped I/O API is too specific to struct bio now.
MFC after: 2 weeks Sponsored by: iXsystems, Inc.
show more ...
|
#
756a5412 |
| 15-Jan-2019 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Allocate pager bufs from UMA instead of 80-ish mutex protected linked list.
o In vm_pager_bufferinit() create pbuf_zone and start accounting on how many pbufs are we going to have set. In variou
Allocate pager bufs from UMA instead of 80-ish mutex protected linked list.
o In vm_pager_bufferinit() create pbuf_zone and start accounting on how many pbufs are we going to have set. In various subsystems that are going to utilize pbufs create private zones via call to pbuf_zsecond_create(). The latter calls uma_zsecond_create(), and sets a limit on created zone. After startup preallocate pbufs according to requirements of all pbuf zones.
Subsystems that used to have a private limit with old allocator now have private pbuf zones: md(4), fusefs, NFS client, smbfs, VFS cluster, FFS, swap, vnode pager.
The following subsystems use shared pbuf zone: cam(4), nvme(4), physio(9), aio(4). They should have their private limits, but changing that is out of scope of this commit.
o Fetch tunable value of kern.nswbuf from init_param2() and while here move NSWBUF_MIN to opt_param.h and eliminate opt_swap.h, that was holding only this option. Default values aren't touched by this commit, but they probably should be reviewed wrt to modern hardware.
This change removes a tight bottleneck from sendfile(2) operation, that uses pbufs in vnode pager. Other pagers also would benefit from faster allocation.
Together with: gallatin Tested by: pho
show more ...
|
Revision tags: release/12.0.0 |
|
#
2a22df74 |
| 04-Nov-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r339813 through r340125.
|
#
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.
|
#
79fab7d4 |
| 21-Jul-2018 |
Alexander Motin <mav@FreeBSD.org> |
Stop further SCSI recovery attempts after one has failed.
We've got a set of probably damaged hard disks, reporting 0x04,0x02 ("Logical unit not ready, initializing command required") in response to
Stop further SCSI recovery attempts after one has failed.
We've got a set of probably damaged hard disks, reporting 0x04,0x02 ("Logical unit not ready, initializing command required") in response to READ CAPACITY(16), where attempts to use START STOP UNIT for recovery results in 0x44,0x00 ("Internal target failure") after ~1 second delay. As result of all recovery retries, device open attempt took ~3 seconds before finally reporting to GEOM that device is opened, but has no media. If the open was for writing and since it hasn't formally failed, following close triggered GEOM retaste, opening device few more times with respective delays.
This change reduces whole time of this cycle from ~12 seconds to ~3 by giving up on recovery after the first failure.
Reviewed by: ken MFC after: 2 weeks Sponsored by: iXsystems, Inc.
show more ...
|
Revision tags: release/11.2.0 |
|
#
76314772 |
| 01-May-2018 |
Scott Long <scottl@FreeBSD.org> |
Add and fix comments for cam_periph_runccb()
Sponsored by: Netflix
|
#
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 ...
|
#
bc40691e |
| 15-Feb-2018 |
Warner Losh <imp@FreeBSD.org> |
Report the number of remaining retries when we have an error that we're retrying.
|
#
99e7a4ad |
| 06-Feb-2018 |
Scott Long <scottl@FreeBSD.org> |
Return a C errno for cam_periph_acquire().
There's no compelling reason to return a cam_status type for this function and doing so only creates confusion with normal C coding practices. It's technic
Return a C errno for cam_periph_acquire().
There's no compelling reason to return a cam_status type for this function and doing so only creates confusion with normal C coding practices. It's technically an API change, but the periph API isn't widely used. No efffective change to operation.
Reviewed by: imp, mav, ken Sponsored by: Netflix Differential Revision: D14063
show more ...
|
#
c79126f2 |
| 12-Jan-2018 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r327624 through r327885.
|
#
045f8bc8 |
| 11-Jan-2018 |
Warner Losh <imp@FreeBSD.org> |
When we crash, we'll stop the scheduler before we call the shutdown_post_sync event. For adashutdown, this causes problems because we need to poll for completion of the commands, but we're not yet o
When we crash, we'll stop the scheduler before we call the shutdown_post_sync event. For adashutdown, this causes problems because we need to poll for completion of the commands, but we're not yet officially dumping yet, so the code from r326964 assumed we could use the interrupt-driven commands rather than the polled ones. This lead to a hang. Prevent this by also checking to see if the scheduler is stopped to do the polling.
Reported by: markj@ Sponsored by: Netflix Differential Review: https://reviews.freebsd.org/D13845
show more ...
|
#
04e814ae |
| 09-Jan-2018 |
Scott Long <scottl@FreeBSD.org> |
Don't hold the periph lock when calling into cam_periph_runccb() from the ada and da dump routines. This avoids difficult locking problems from needing to be handled. While it might seem like this
Don't hold the periph lock when calling into cam_periph_runccb() from the ada and da dump routines. This avoids difficult locking problems from needing to be handled. While it might seem like this would leave the periphs unprotected during dump, they were aleady at risk of unexpected removal due to the dump functions not keeping refcount state across the many calls that come in during a dump. This is an exercise for future work.
Obtained from: Netflix
show more ...
|
#
54b4b13c |
| 24-Dec-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r326936 through r327149.
|
#
5cf3cd10 |
| 19-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
When doing a dump, the scheduler is normally not running, so this changed worked to capture dumps for me. However, the test for SCHEDULER_STOPPED() isn't right. We can also call the dump routine from
When doing a dump, the scheduler is normally not running, so this changed worked to capture dumps for me. However, the test for SCHEDULER_STOPPED() isn't right. We can also call the dump routine from ddb, in which case the scheduler is still running. This leads to an assertion panic that we're sleeping when we shouldn't. Instead, use the proper test for dumping or not. This brings us in line with other places that do special things while we're doing polled I/O like this.
Noticed by: pho@ Differential Revision: https://reviews.freebsd.org/D13531
show more ...
|
#
762a7f4f |
| 07-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
Define xpt_path_inq.
This provides a nice wrarpper around the XPT_PATH_INQ ccb creation and calling.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D13387
|
#
f93a843c |
| 07-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
Make cam_periph_runccb be safe to call when we can only do polling.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D13388
|
#
553484ae |
| 06-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
Remove unused 4th argument to match the standard error routines.
Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D13386
|
#
d2f3208d |
| 06-Dec-2017 |
Warner Losh <imp@FreeBSD.org> |
Add NVME as a known device type for devstat processing.
Also, reduce the amount of cut and pasted code a little since only two args are different in the devstat_end_transaction calls.
Sponsored by:
Add NVME as a known device type for devstat processing.
Also, reduce the amount of cut and pasted code a little since only two args are different in the devstat_end_transaction calls.
Sponsored by: Netflix
show more ...
|
#
bec9534d |
| 27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/cam: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error
sys/cam: further adoption of SPDX licensing ID tags.
Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task.
The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
show more ...
|
Revision tags: release/10.4.0 |
|
#
531c2d7a |
| 24-Jul-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r320180
|
#
bca9d05f |
| 23-Jul-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r319973 through 321382.
|
Revision tags: release/11.1.0 |
|
#
03f072d1 |
| 14-Jul-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r320971 through r320993.
|