|
Revision tags: release/13.4.0-p5, release/13.5.0-p1, release/14.2.0-p3, release/13.5.0, release/14.2.0-p2, release/14.1.0-p8, release/13.4.0-p4, release/14.1.0-p7, release/14.2.0-p1, release/13.4.0-p3, release/14.2.0, release/13.4.0, release/14.1.0, release/13.3.0, release/14.0.0 |
|
| #
685dc743 |
| 16-Aug-2023 |
Warner Losh <[email protected]> |
sys: Remove $FreeBSD$: one-line .c pattern
Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
| #
4d846d26 |
| 10-May-2023 |
Warner Losh <[email protected]> |
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 |
|
| #
e4d4beba |
| 12-Apr-2022 |
John Baldwin <[email protected]> |
isp: Remove unused variable.
|
|
Revision tags: release/12.3.0, release/13.0.0 |
|
| #
156c1ebe |
| 27-Nov-2020 |
Alexander Motin <[email protected]> |
Some code reorganization.
- Remove code duplication by adding two new functions to execute prepared queue entry via either mbox or request queue and wait for result. - Since the new function execu
Some code reorganization.
- Remove code duplication by adding two new functions to execute prepared queue entry via either mbox or request queue and wait for result. - Since the new function executing via request queue sleeps any way, make it sleep also in case of overflows or handle shortages. It should make it more reliable and less affecting other less flexible request queue users. - Turn isp_target_put_entry() into not target-specific isp_send_entry(). - Make handling of responses with control handles more universal. - Move RQSTYPE_RPT_ID_ACQ handling into new function. - Inline isp_handle_other_response(), becoming trivial after above. - Clean the list of IOCBs from pre-24xx ones.
show more ...
|
| #
b05f17a1 |
| 26-Nov-2020 |
Alexander Motin <[email protected]> |
Some minor FCoE bits I had lying around.
|
| #
8cb0d414 |
| 26-Nov-2020 |
Alexander Motin <[email protected]> |
Remove some more dead code from pre-24xx.
|
| #
0f99cb55 |
| 24-Nov-2020 |
Alexander Motin <[email protected]> |
Implement request queue overflow protection.
Before this change in case of request queue overflow driver just froze the device queue for 100ms to retry after. It was pretty bad for performance. Thi
Implement request queue overflow protection.
Before this change in case of request queue overflow driver just froze the device queue for 100ms to retry after. It was pretty bad for performance. This change introduces SIM queue freezing when free space on the request queue drops below 255 entries (worst case of maximum I/O size S/G list), checking for a chance to release it on I/O completion. If the queue still get overflowed somehow, the old mechanism is still in place, just with delay reduced to 10ms.
With the earlier queue length increase overflows should not happen often, but it is still easily reachable on synthetic tests.
show more ...
|
| #
0b19f90a |
| 22-Nov-2020 |
Alexander Motin <[email protected]> |
Make handlers and atpds overflows unlikely.
- Allocate 256 handlers more than payload commands for management purposes. - Increase maximum number of handlers from 8K to 16K by tuning the format.
Make handlers and atpds overflows unlikely.
- Allocate 256 handlers more than payload commands for management purposes. - Increase maximum number of handlers from 8K to 16K by tuning the format. - Just to be safe limit the number of payload commands to 16K - 256. - Limit number of target exchanges in mixed mode to the number of atpds. - If we still somehow get out of atpds -- return BUSY, since we really are.
show more ...
|
| #
f6854a0c |
| 20-Nov-2020 |
Alexander Motin <[email protected]> |
Cleanup DMA handling.
- Make isp_start() to set all the IOCB fields aside of S/G list, removing extra information from isp_send_cmd(), now only doing S/G lists and sending. - Turn DMA setup/free f
Cleanup DMA handling.
- Make isp_start() to set all the IOCB fields aside of S/G list, removing extra information from isp_send_cmd(), now only doing S/G lists and sending. - Turn DMA setup/free from being card and PCI-specific into OS-specific, instead add new card-specific method for isp_send_cmd(). Previously this function was a monster handling all the cards. - Remove double error code translation.
show more ...
|
| #
1b760be4 |
| 20-Nov-2020 |
Alexander Motin <[email protected]> |
Remove parallel SCSI and 1/2Gb FC support from isp(4).
This removes 288KB (36%) of the driver code and zillions of hacks and workarounds, making single driver uniformly support several different gen
Remove parallel SCSI and 1/2Gb FC support from isp(4).
This removes 288KB (36%) of the driver code and zillions of hacks and workarounds, making single driver uniformly support several different generations of hardware interfaces, not counting minor card variations. After years of the hopeless fight, I don't think it worth to continue support for hardware obsolete for 15-20 years. Instead much cleaner now code should allow to move forward toward better locking, multiple queues and other cool features.
All the remaining Qlogic cards starting from 4Gb 24xx to 32Gb 27xx use the same hardware/firmware interface with minor incremental improvements, so it seems to be a good new starting point. Except one PCI-X model all all of them are PCIe and so still usable in modern systems.
Discussed with: ken, scottl, jpaetzel, imp Relnotes: yes
show more ...
|
|
Revision tags: release/12.2.0, release/11.4.0, release/12.1.0, release/11.3.0, release/12.0.0, release/11.2.0 |
|
| #
718cf2cc |
| 27-Nov-2017 |
Pedro F. Giffuni <[email protected]> |
sys/dev: 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/dev: 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, release/11.1.0 |
|
| #
a94fab67 |
| 03-Jul-2017 |
Alexander Motin <[email protected]> |
Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID.
Instead of using GID_FT SNS request to get list of registered FCP ports, use GID_PT to get list of all Nx_Ports, and then use GFF_ID and/or G
Switch fabric scans from GID_FT to GID_PT+GFF_ID/GFT_ID.
Instead of using GID_FT SNS request to get list of registered FCP ports, use GID_PT to get list of all Nx_Ports, and then use GFF_ID and/or GFT_ID requests to find whether they are FCP and target capable.
The problem with old approach is that GID_FT does not report ports without FC-4 type registered. In particular it was impossible to boot OS from FreeBSD FC target using QLogic FC BIOS, since one does not register FC-4 type even on new cards and so ignored by old code as incompatible.
As a side bonus this allows initiator to skip pointless logins to other initiators by fetching that information from SNS instead.
In case some switches do not implement GFF_ID/GFT_ID correctly, add sysctls to disable that functionality. I handled broken GFF_ID of my Brocade 200E, but there may be other switches with different bugs.
Linux also uses GID_PT, but GFF_ID is disabled by default there, and GFT_ID is not supported.
Sponsored by: iXsystems, Inc.
show more ...
|
| #
7e31684e |
| 24-Mar-2017 |
Alexander Motin <[email protected]> |
Unify initiator and target DMA setup and command sending.
The code is so alike that it is pointless to keep it separate.
MFC after: 2 weeks
|
| #
98b08fbe |
| 18-Mar-2017 |
Alexander Motin <[email protected]> |
Remove dead remnants of SPI target.
MFC after: 2 weeks
|
| #
a1fa0267 |
| 14-Mar-2017 |
Alexander Motin <[email protected]> |
Improvements around attach, reset and detach.
This change fixes DMA resource leak on driver unload. Also it removes DMA resources allocation for hardcoded number of requests before fetching the rea
Improvements around attach, reset and detach.
This change fixes DMA resource leak on driver unload. Also it removes DMA resources allocation for hardcoded number of requests before fetching the real number from firmware. Also it prepares ground for more flexible IRQs allocation according to firmware capabilities.
MFC after: 2 weeks
show more ...
|
|
Revision tags: release/11.0.1, release/11.0.0 |
|
| #
5fa351ed |
| 17-May-2016 |
Alexander Motin <[email protected]> |
Completely remove broken now autologin port flag.
Firmware automatically logs in only to local loop ports, and those ports can be easily identified without extra flag by zero domain and area IDs.
M
Completely remove broken now autologin port flag.
Firmware automatically logs in only to local loop ports, and those ports can be easily identified without extra flag by zero domain and area IDs.
MFC after: 1 week
show more ...
|
| #
212fad74 |
| 14-Apr-2016 |
Alexander Motin <[email protected]> |
Extract virtual port address from RQSTYPE_RPT_ID_ACQ.
This should close the race between request arriving on new target mode virtual port and its scanner thread finally fetch its address for request
Extract virtual port address from RQSTYPE_RPT_ID_ACQ.
This should close the race between request arriving on new target mode virtual port and its scanner thread finally fetch its address for request routing.
show more ...
|
| #
5e3e6a82 |
| 11-Apr-2016 |
Alexander Motin <[email protected]> |
Polish debugging IOCB dumping.
Add few more missing cases, unify byte order.
MFC after: 1 month
|
| #
7e53e7ac |
| 09-Apr-2016 |
Alexander Motin <[email protected]> |
Register symbolic port/node names in FC name server.
This is cosmetics that simplifies identification of new ports on FC switch.
It would be good to use target name from CTL here instead of hostnam
Register symbolic port/node names in FC name server.
This is cosmetics that simplifies identification of new ports on FC switch.
It would be good to use target name from CTL here instead of hostname, but it is not passed here through CAM now.
MFC after: 2 weeks
show more ...
|
|
Revision tags: release/10.3.0 |
|
| #
66e979f1 |
| 26-Dec-2015 |
Alexander Motin <[email protected]> |
Make virtual ports control asynchronous.
Before this change virtual ports control IOCBs were executed synchronously via Execute IOCB mailbox command. It required exclusive use of scratch space of d
Make virtual ports control asynchronous.
Before this change virtual ports control IOCBs were executed synchronously via Execute IOCB mailbox command. It required exclusive use of scratch space of driver and mailbox registers of the hardware. Because of that shared resources use this code could not really sleep, having to spin for completion, blocking any other operation.
This change introduces new asynchronous design, sending the IOCBs directly on request queue and gracefully waiting for their return on response queue. Returned IOCBs are identified with unified handle space from r292725.
show more ...
|
| #
970ceb2f |
| 25-Dec-2015 |
Alexander Motin <[email protected]> |
Unify handles allocation for initiator and target IOCBs.
I am not sure why this was split long ago, but I see no reason for it. At this point this unification just slightly reduces memory usage, but
Unify handles allocation for initiator and target IOCBs.
I am not sure why this was split long ago, but I see no reason for it. At this point this unification just slightly reduces memory usage, but as next step I plan to reuse shared handle space for other IOCB types.
show more ...
|
| #
a4f43c01 |
| 25-Dec-2015 |
Alexander Motin <[email protected]> |
Clear virtual port's port database when disabling it.
Previously it was done only on full chip reinit, that caused old ports resurrect in case of virtual port reenabling.
|
| #
829dfec0 |
| 04-Dec-2015 |
Alexander Motin <[email protected]> |
Update isp_put_icb_2400() for new structure fields.
|
| #
e561aa79 |
| 26-Nov-2015 |
Alexander Motin <[email protected]> |
One more round of port scanner rewrite.
- Make scan aborted by event restart immediately and infinitely. - Improve handling of some loop events from firmware. - Remove loop down timer, adding its
One more round of port scanner rewrite.
- Make scan aborted by event restart immediately and infinitely. - Improve handling of some loop events from firmware. - Remove loop down timer, adding its functionality to scanner thread. - Some more unification and simplification.
show more ...
|
| #
a4ccb5d6 |
| 23-Nov-2015 |
Alexander Motin <[email protected]> |
Fix target mode support for Qlogic 2200 FC adapters.
Now target mode works for all supported FC adapters except ancient 2100, which is not tested.
|