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
|
#
685dc743 |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
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 |
|
#
f4d499fd |
| 07-Jan-2022 |
Alexander Motin <mav@FreeBSD.org> |
CTL: Relax callouts precisions.
MFC after: 2 weeks
|
#
b06771aa |
| 30-Dec-2021 |
Alexander Motin <mav@FreeBSD.org> |
CTL: Allow I/Os up to 8MB, depending on maxphys value.
For years CTL block backend limited I/O size to 1MB, splitting larger requests into sequentially processed chunks. It is sufficient for most o
CTL: Allow I/Os up to 8MB, depending on maxphys value.
For years CTL block backend limited I/O size to 1MB, splitting larger requests into sequentially processed chunks. It is sufficient for most of use cases, since typical initiators rarely use bigger I/Os.
One of known exceptions is VMWare VAAI offload, by default sending up to 8 4MB EXTENDED COPY requests same time. CTL internally converted those into 32 1MB READ/WRITE requests, that could overwhelm the block backend, having finite number of processing threads and making more important interactive I/Os to wait in its queue. Previously it was partially covered by CTL core serializing sequential reads to help ZFS speculative prefetcher, but that serialization was significantly relaxed after recent ZFS improvements.
With the new settings block backend receives 8 4MB requests, that should be easier for both CTL itself and the underlying storage.
MFC after: 2 weeks Sponsored by: iXsystems, Inc.
show more ...
|
Revision tags: release/12.3.0, release/13.0.0 |
|
#
a9bd2281 |
| 26-Feb-2021 |
Alexander Motin <mav@FreeBSD.org> |
Remove pointless lun->be_lun checks.
There is no such thing as LUN without backend, at least for years.
MFC after: 1 week
|
#
812c9f48 |
| 19-Feb-2021 |
Alexander Motin <mav@FreeBSD.org> |
Save context switch per I/O for iSCSI and IOCTL frontends.
Introduce new CTL core KPI ctl_run(), preprocessing I/Os in the caller context instead of scheduling another thread just for that. This ca
Save context switch per I/O for iSCSI and IOCTL frontends.
Introduce new CTL core KPI ctl_run(), preprocessing I/Os in the caller context instead of scheduling another thread just for that. This call may sleep, that is not acceptable for some frontends like the original CAM/FC one, but iSCSI already has separate sleepable per-connection RX threads, and another thread scheduling is mostly just a waste of time. IOCTL frontend actually waits for the I/O completion in the caller thread, so the use of another thread for this has even less sense.
With this change I can measure ~5% IOPS improvement on 4KB iSCSI I/Os to ZFS.
MFC after: 1 month
show more ...
|
Revision tags: release/12.2.0 |
|
#
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, release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0 |
|
#
8951f055 |
| 10-May-2018 |
Marcelo Araujo <araujo@FreeBSD.org> |
Rework CTL frontend & backend options to use nv(3), allow creating multiple ioctl frontend ports.
This revision introduces two changes to CTL: - Changes the way options are passed to CTL_LUN_REQ and
Rework CTL frontend & backend options to use nv(3), allow creating multiple ioctl frontend ports.
This revision introduces two changes to CTL: - Changes the way options are passed to CTL_LUN_REQ and CTL_PORT_REQ ioctls. Removes ctl_be_arg structure and associated logic and replaces it with nv(3)-based logic for passing in and out arguments. - Allows creating multiple ioctl frontend ports using either ctladm(8) or ctld(8). New frontend ports are represented by /dev/cam/ctl<pp>.<vp> nodes, eg /dev/cam/ctl5.3. Those device nodes respond only to CTL_IO ioctl.
New command-line options for ctladm: # creates new ioctl frontend port with using free pp and vp=0 ctladm port -c # creates new ioctl frontend port with pp=10 and vp=0 ctladm port -c -O pp=10 # creates new ioctl frontend port with pp=11 and vp=12 ctladm port -c -O pp=11 -O vp=12 # removes port with number 4 (it's a "targ_port" number, not pp number) ctladm port -r -p 4
New syntax for ctl.conf: target ... { port ioctl/<pp> ... }
target ... { port ioctl/<pp>/<vp> ...
Note: Most of this work was made by jceel@, thank you.
Submitted by: jceel Reworked by: myself Reviewed by: mav (earlier versions and recently during the rework) Obtained from: FreeNAS and TrueOS Relnotes: Yes Sponsored by: iXsystems Inc. Differential Revision: https://reviews.freebsd.org/D9299
show more ...
|
#
f24882ec |
| 17-Jan-2018 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
SPDX: finish tagging sys/cam.
|
Revision tags: release/10.4.0, release/11.1.0 |
|
#
be649680 |
| 28-Feb-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r314270 through r314419.
|
#
9ff948d0 |
| 27-Feb-2017 |
Alexander Motin <mav@FreeBSD.org> |
Polish handling of different reset flavours.
The biggest change is that ctl_remove_initiator() now generates I_T NEXUS LOSS event, cleaning part of LUs state related to the initiator.
MFC after: 2
Polish handling of different reset flavours.
The biggest change is that ctl_remove_initiator() now generates I_T NEXUS LOSS event, cleaning part of LUs state related to the initiator.
MFC after: 2 weeks
show more ...
|
#
6ae9acde |
| 23-Feb-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r313896 through r314128.
|
#
46511441 |
| 18-Feb-2017 |
Alexander Motin <mav@FreeBSD.org> |
Change XCOPY memory allocations.
Before this change XCOPY code could allocate memory in chunks up to 16-32MB (VMware does XCOPY in 4MB chunks by default), that could be difficult for VM subsystem to
Change XCOPY memory allocations.
Before this change XCOPY code could allocate memory in chunks up to 16-32MB (VMware does XCOPY in 4MB chunks by default), that could be difficult for VM subsystem to do due to KVA fragmentation, that sometimes created huge allocation delays, blocking any I/O for respective LU for that time.
This change limits allocations down to TPC_MAX_IO_SIZE, which is 1MB now. 1MB is also not a cookie, but ZFS also can do that for large blocks, so it should be less dramatic. As drawback this increases CPU overhead, but it still look acceptable comparing to time consumed by ZFS read/write.
MFC after: 1 week
show more ...
|
#
9b3ece1c |
| 04-Feb-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r313243
|
#
a4aa656a |
| 22-Jan-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r312309 through r312623.
|
#
640603fb |
| 17-Jan-2017 |
Alexander Motin <mav@FreeBSD.org> |
Remove writing 'residual' field of struct ctl_scsiio.
This field has no practical use and never readed. Initiators already receive respective residual size from frontends. Removed field had differ
Remove writing 'residual' field of struct ctl_scsiio.
This field has no practical use and never readed. Initiators already receive respective residual size from frontends. Removed field had different semantics, which looks useless, and was never passed through by any frontend.
While there, fix kern_data_resid field support in case of HA, missed in r312291.
MFC after: 13 days
show more ...
|
#
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
|
#
eb6ac6f9 |
| 16-Jan-2017 |
Alexander Motin <mav@FreeBSD.org> |
Make CTL frontends report kern_data_resid for under-/overruns.
It seems like kern_data_resid was never really implemented. This change finally does it. Now frontends update this field while transf
Make CTL frontends report kern_data_resid for under-/overruns.
It seems like kern_data_resid was never really implemented. This change finally does it. Now frontends update this field while transferring data, while CTL/backends getting it can more flexibly handle the result. At this point behavior should not change significantly, still reporting errors on write overrun, but that may be changed later, if we decide so.
CAM target frontend still does not properly handle overruns due to CAM API limitations. We may need to add some fields to struct ccb_accept_tio to pass information about initiator requested transfer size(s).
MFC after: 2 weeks
show more ...
|
#
9cbbfd2f |
| 29-Dec-2016 |
Alexander Motin <mav@FreeBSD.org> |
Improve use of I/O's private area.
- Since I/Os are allocates from per-port pools, make allocations store pointer to CTL softc there, and use it where needed instead of global. - Created bunch of
Improve use of I/O's private area.
- Since I/Os are allocates from per-port pools, make allocations store pointer to CTL softc there, and use it where needed instead of global. - Created bunch of helper macros to access LUN, port and CTL softc.
MFC after: 2 weeks
show more ...
|
#
41243159 |
| 25-Dec-2016 |
Alexander Motin <mav@FreeBSD.org> |
Remove CTL_MAX_LUNS from places where it is not required.
MFC after: 2 weeks
|
#
a3dd8378 |
| 25-Dec-2016 |
Alexander Motin <mav@FreeBSD.org> |
Improve third-party copy error reporting.
For EXTENDED COPY: - improve parameters checking to report some errors before copy start; - forward sense data from copy target as descriptor in case of e
Improve third-party copy error reporting.
For EXTENDED COPY: - improve parameters checking to report some errors before copy start; - forward sense data from copy target as descriptor in case of error; - report which CSCD reported error in sense key specific information. For WRITE USING TOKEN: - pass through real sense data from copy target instead of reporting our copy error, since for initiator its a "simple" write, not a copy.
MFC after: 2 weeks
show more ...
|
#
32920cbf |
| 19-Dec-2016 |
Alexander Motin <mav@FreeBSD.org> |
When reporting "Logical block address out of range" error, report the LBA in sense data INFORMATION field.
MFC after: 2 weeks
|
Revision tags: release/11.0.1, release/11.0.0 |
|
#
8fadf660 |
| 10-May-2016 |
Alexander Motin <mav@FreeBSD.org> |
Fix previous commit to report proper error code.
MFC after: 2 weeks
|