QLogic is pleased to announce the availability of a completely new
version of the QLogic FC driver (8.00.00b1) for its
ISP21xx/ISP22xx/ISP23xx chips and HBAs. Our desire after community
review and continued driver development is inclusion of this work into
the Linux 2.5 kernel tree.
This driver contains support for Linux kernels 2.5.x and above *only*
(all 2.4.x support has been removed). It's based on the QLogic 6.x
driver which is qualified with a number of OEMs and is functionally
equivalent to the 6.05.00b9 driver.
The new driver contains a number of key functional changes,
initialization (device scanning), I/O handling -- command queuing
refinements (front-end), ISR rewrite (backend). The last two notables
should assist in a reasonable performance improvement. Details
pertaining to the these changes and the development direction of this
work can be found towards the end of this email.
Driver tar-balls are available in two-forms from our SourceForge site:
http://sourceforge.net/projects/linux-qla2xxx/
o Kernel tree drop-in tarball (synced with 2.5.69):
qla2xxx-kernel-v8.00.00b1.tar.bz2
Extract the contents directly in the kernel tree:
# cd /usr/src/linux-2.5.69
# tar xvfj /tmp/qla2xxx-kernel-v8.00.00b1.tar.bz2
# make config
# ...
o External build tarball:
qla2xxx-src-v8.00.00b1.tar.bz2
Extract the contents to your build directory:
# mkdir /tmp/qla-8.00.00b1
# cd /tmp/qla-8.00.00b1
# tar xvfj /tmp/qla2xxx-src-v8.00.00b1.tar.bz2
# make -C /usr/src/linux-2.5.69 SUBDIRS=$PWD modules
Please note, this is a (pre)beta release. Testing has been performed
against a number of storage devices (JBODs, and FC raid boxes), but
certainly has not received the level of test coverage present with the
6.x series code -- basic error injection (cable-pulls and recovery).
NOTE: The driver group will try to address any issues with this work
within the linux-scsi and linux-kernel mailing lists. Please do not
contact QLogic technical support regarding this driver.
Details:
This driver is and will continue to be in a very fluid state. Changes
thus far include basic infrastructure and semantic rewrites of some core
components of the driver:
o Initialization:
- pci_driver scanning.
- Fabric scanning:
- GID_PT (if not supported, fallback to GA_NXT).
- SNS registration - RFT_ID, RFF_ID RNN_ID, RSNN_ID.
- ISP abstractions:
- Firmware loading mechanism.
- NVRAM configuration.
- 2k port login support (ISP23xx only).
- SRB pool allocations.
o Queuing mechanisms:
- Rewrite command IOCB handling.
o Command response handling:
- Rewrite ISR -- simplification.
- Bottom-half handling via work queues.
o Code restructuring.
o Kernel 2.5 support -- currently in sync with 2.5.69.
Additional work to be done include:
o Further fabric scanning refinements:
- Minimizing SNS queries.
- Asynchronous fabric logins.
o Review Locking mechanisms -- there are still a number of
structures which depend on our high-level hardware lock for
mutual exclusion.
o Internal device-list management unification.
o Rework mailbox and IOCTL request handling:
- To use wait queues.
o Logging mechanisms. The current debugging requirement is to
recompile the driver in 'debug' mode. Once included in the
kernel tree, recompilation is not a guaranteed option.
Make use of 'Extended error logging' NVRAM parameter to enable
additional debug statements.
o Kernel 2.5 support:
- module_param() interface.
Any feedback (comments, suggestions, criticisms) would be appreciated.
Regards,
Andrew Vasquez
QLogic Corporation
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/