#
ac7a514e |
| 03-May-2024 |
John Baldwin <jhb@FreeBSD.org> |
ctl: Add CTL_IO_ASSERT wrapper macro
Currently, this pattern is commonly used to assert that a union ctl_io is a SCSI request. In the future it will be used to assert other types.
Suggested by: im
ctl: Add CTL_IO_ASSERT wrapper macro
Currently, this pattern is commonly used to assert that a union ctl_io is a SCSI request. In the future it will be used to assert other types.
Suggested by: imp Reviewed by: imp Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D44844
show more ...
|
Revision tags: release/13.3.0, 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/
|
#
a74530d9 |
| 25-Jul-2023 |
Warner Losh <imp@FreeBSD.org> |
cam/ctl: 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
|
#
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 |
|
#
0acc026d |
| 03-Dec-2022 |
Alexander Motin <mav@FreeBSD.org> |
CTL: Increase maximum SCSI tag size from 32 to 64 bits.
SAM-5 specification states maximum size of command identifier (tag), defined by specific transports, should not be larger than 64 bits. While
CTL: Increase maximum SCSI tag size from 32 to 64 bits.
SAM-5 specification states maximum size of command identifier (tag), defined by specific transports, should not be larger than 64 bits. While most of supported transports use 32 bits or less, it was reported that virtio-scsi uses 64 bits. Truncation to 32 bits in bhyve code caused false tag conflict errors reported and possibly other issues.
This changes CTL ABI and HA protocol, so CTL_HA_VERSION is bumped.
While we make HA protocol incompatible, increase default maximum number of ports in CTL from 256 to 1024, matching number of LUNs. There are many reports from people who need many iSCSI targets with only one LUN each. Increased memory consumption should be less of a problem these days.
PR: 267539
show more ...
|
Revision tags: release/12.4.0, release/13.1.0, release/12.3.0 |
|
#
616a676a |
| 21-Jul-2021 |
Edward Tomasz Napierala <trasz@FreeBSD.org> |
cam: clear stack-allocated CCB in the target layer
Note that, as pointed out by scottl@, this code should really look a bit different, in that the stack allocations should be replaced with dynamic a
cam: clear stack-allocated CCB in the target layer
Note that, as pointed out by scottl@, this code should really look a bit different, in that the stack allocations should be replaced with dynamic allocation, and the periph creation should be moved to a context where one can use M_WAITOK. See the review for more details. For now let's go with a minimal fix until we're done with UMA CCBs.
Reviewed By: mav, imp Sponsored by: NetApp, Inc. Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D30298
show more ...
|
Revision tags: release/13.0.0 |
|
#
2c7dc6ba |
| 21-Feb-2021 |
Alexander Motin <mav@FreeBSD.org> |
Refactor CTL datamove KPI.
- Make frontends call unified CTL core method ctl_datamove_done() to report move completion. It allows to reduce code duplication in differerent backends by accounting D
Refactor CTL datamove KPI.
- Make frontends call unified CTL core method ctl_datamove_done() to report move completion. It allows to reduce code duplication in differerent backends by accounting DMA time in common code. - Add to ctl_datamove_done() and be_move_done() callback samethr argument, reporting whether the callback is called in the same context as ctl_datamove(). It allows for some cases like iSCSI write with immediate data or camsim frontend write save one context switch, since we know that the context is sleepable. - Remove data_move_done() methods from struct ctl_backend_driver, unused since forever.
MFC after: 1 month
show more ...
|
#
05d882b7 |
| 19-Feb-2021 |
Alexander Motin <mav@FreeBSD.org> |
Microoptimize CTL I/O queues.
Switch OOA queue from TAILQ to LIST and change its direction, so that we traverse it forward, not backward. There is only one place where we really need other directio
Microoptimize CTL I/O queues.
Switch OOA queue from TAILQ to LIST and change its direction, so that we traverse it forward, not backward. There is only one place where we really need other direction, and it is not critical.
Use STAILQ_REMOVE_HEAD() instead of STAILQ_REMOVE() in backends.
Replace few impossible conditions with assertions.
MFC after: 1 month
show more ...
|
#
c67a2909 |
| 18-Feb-2021 |
Alexander Motin <mav@FreeBSD.org> |
Move XPT_IMMEDIATE_NOTIFY handling out of periph lock.
It is a rare, but still better to not have lock dependencies.
MFC after: 1 month
|
#
88364968 |
| 25-Oct-2020 |
Alexander Motin <mav@FreeBSD.org> |
Introduce support of SCSI Command Priority.
SAM-3 specification introduced concept of Task Priority, that was renamed to Command Priority in SAM-4, and supported by all modern SCSI transports. It pr
Introduce support of SCSI Command Priority.
SAM-3 specification introduced concept of Task Priority, that was renamed to Command Priority in SAM-4, and supported by all modern SCSI transports. It provides 15 levels of relative priorities: 1 - highest, 15 - lowest and 0 - default. SAT specification for SATA devices translates priorities 1-3 into NCQ high priority.
This change adds new "priority" field into empty spots of struct ccb_scsiio and struct ccb_accept_tio of CAM and struct ctl_scsiio of CTL. Respective support is added into iscsi(4), isp(4), mpr(4), mps(4) and ocs_fc(4) drivers for both initiator and where applicable target roles. Minimal support was added to CTL to receive the priority value from different frontends, pass it between HA controllers and report in few places.
This patch does not add consumers of this functionality, so nothing should really change yet, since the field is still set to 0 (default) on initiator and not actively used on target. Those are to be implemented separately.
I've confirmed priority working on WD Red SATA disks connected via mpr(4) and properly transferred to CTL target via iscsi(4), isp(4) and ocs_fc(4).
While there, added missing tag_action support to ocs_fc(4) initiator role.
MFC after: 1 month Relnotes: yes Sponsored by: iXsystems, Inc.
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 |
|
#
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 ...
|
#
a99028fc |
| 26-Jan-2018 |
Justin Hibbits <jhibbits@FreeBSD.org> |
Minimum changes for ctl to build on architectures with non-matching physical and virtual address sizes
Summary: Some architectures use physical addresses larger than virtual. This is the minimal ch
Minimum changes for ctl to build on architectures with non-matching physical and virtual address sizes
Summary: Some architectures use physical addresses larger than virtual. This is the minimal changeset needed to get CAM/CTL to build on these targets. No functional changes. More changes would likely be needed for this to be fully functional on said platforms, but they can be made when needed.
Reviewed By: mav, chuck Differential Revision: https://reviews.freebsd.org/D14041
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 |
|
#
083c8ded |
| 13-Aug-2017 |
Enji Cooper <ngie@FreeBSD.org> |
MFhead@r322451
|
#
0275f9db |
| 11-Aug-2017 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Merge ^/head r321383 through r322397.
|
#
c901a9b1 |
| 09-Aug-2017 |
Alexander Motin <mav@FreeBSD.org> |
Do not loose CCB flags after r320493.
There is at least CAM_UNLOCKED that should be kept.
MFC after: 3 days
|
#
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 |
|
#
f6e653bb |
| 02-Jul-2017 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r320398 through r320572.
|
#
86ce2be6 |
| 30-Jun-2017 |
Alexander Motin <mav@FreeBSD.org> |
Unify INOT/ATIO setup.
|
#
b1303ffe |
| 11-Mar-2017 |
Alexander Motin <mav@FreeBSD.org> |
Increase device openings to tagged maximum.
Some SIMs report much less untagged device openings then tagged ones. Target mode devices are not handled by regular probing routines, and so there is not
Increase device openings to tagged maximum.
Some SIMs report much less untagged device openings then tagged ones. Target mode devices are not handled by regular probing routines, and so there is nothing to increase queue size for them to the SIM's maximum. To fix that resize the queue explicitly on ctl periph registration. This radically improves performance of mpt(4) in target mode.
Also fetch and report device queue statistics in `ctladm dumpstructs`, since regular way of `camcontrol tags` is not usable in target mode.
MFC after: 2 weeks
show more ...
|
#
ad0f05e6 |
| 10-Mar-2017 |
Alexander Motin <mav@FreeBSD.org> |
Abort all ATIOs and INOTs queued to SIM on LUN disable.
Some SIMs may not abort them implicitly, that either fail the LUN disable request or just make us wait for those CCBs forever. With this chan
Abort all ATIOs and INOTs queued to SIM on LUN disable.
Some SIMs may not abort them implicitly, that either fail the LUN disable request or just make us wait for those CCBs forever. With this change I can successfully disable LUNs on mpt(4). For isp(4), which aborts them implicitly, this change should be irrelevant.
MFC after: 2 weeks
show more ...
|
#
832529c5 |
| 10-Mar-2017 |
Alexander Motin <mav@FreeBSD.org> |
Switch work_queue from TAILQ to STAILQ.
It is mostly FIFO and we don't need random removal there.
MFC after: 2 weeks
|