linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [ANNOUNCE] QLogic qla2xxx driver update available (v8.00.00b4).
@ 2003-07-17 23:40 Andrew Vasquez
  2003-07-18 10:48 ` Christoph Hellwig
  2003-07-18 11:23 ` Christoph Hellwig
  0 siblings, 2 replies; 14+ messages in thread
From: Andrew Vasquez @ 2003-07-17 23:40 UTC (permalink / raw)
  To: Linux-Kernel, Linux-SCSI

All,

A new version of the 8.x series driver for Linux 2.6.x kernels has
been uploaded to SourceForge:

	http://sourceforge.net/projects/linux-qla2xxx/

This beta contains a large rewrite of some fundamental structures used
throughout the driver.  This change sets the stage for some of the
more interesting and useful updates such as asynchronous mailbox
commands and a less intrusive discovery processes.

Additionally, the beta includes several performance related changes:

	o An initial merge of performance patches from Arjan van de
	  Ven.  Read the revision notes for details:
	  - Lock contention fixes.
	  - RIO support.
	o SCSI command --> IOCB formation speedup.

BTW: future driver drops *will* come out at a more spirited pace.

Changes include:

 *	- IOCB staging fixups.
 *	- Full support for 2k port logins (~2000 fabric devices).
 *	- Resync with 6.06.00b12.
 *	- Resync with Linux Kernel 2.6.0-test1.

Finally, regarding some of the more interesting (if not the) question(s)
pertaining to the development of qla2xxx:

  o Creation of a single driver module rather than three distinct
	drivers for each ISP type (21xx, 22xx, and 23xx).

  From the technical side, there aren't many compelling reasons for
  the change to not occur.  Support for 2k logins on 2300s did
  introduce a rather large, but manageable (through the compile-time
  preprocessor), interface change between the host driver and
  firmware.  The driver could of course manage this during run-time
  with some creative structure overlays, etc.  Secondly, bundling
  firmware for all ISP types can lead to a rather large binary
  module (21xx - ~64kbytes, 22xx - ~90kbytes, 23xx - ~110kbytes).
  Also, when formal support for the ISP2322 chip is added, an
  additional firmware image (again ~110kbytes) will need to be
  compiled with the driver.  The new user-space firmware-load
  interface could address the size concerns, but at the same time it
  also calls into question the larger issue of support.

  Unfortunately, it is support that ultimately becomes the
  overriding factor in maintaining the three-module build process.
  By building distinct modules (i.e. qla2300.ko to support ISP2300,
  ISP2312, and ISP2322 chips) our DVT group would focus their time and
  efforts on testing 23xx HBAs and not on regressing support with
  EOL'd products.

Until a policy change, the 8.x driver in its current form will have
the limitation of only one driver, qla2100, qla2200, or qla2300, can
be built as part of the kernel at any given time.  Please note, all
three binaries built as modules *can* be loaded without incident.  For
example:

  The following combinations will NOT work:

	- 2100 and 2200 support built as part of the kernel.
	- 2200 and 2300 support built as part of the kernel.
	- 2100 and 2300 support built as part of the kernel.

  The following combinations will work:

	- 2100, 2200 and 2300 support built as modules.
	- 2100 support build as part of the kernel, 2200 and 2300
	  support built as modules.
	- 2300 support build as part of the kernel, 2100 and 2200
	  support built as modules.
	- etc...

Regards,
Andrew Vasquez

^ permalink raw reply	[flat|nested] 14+ messages in thread
* Re: [ANNOUNCE] QLogic qla2xxx driver update available (v8.00.00b4).
@ 2003-07-19  1:05 Manfred Spraul
  0 siblings, 0 replies; 14+ messages in thread
From: Manfred Spraul @ 2003-07-19  1:05 UTC (permalink / raw)
  To: Andrew Vasquez
  Cc: linux-scsi, Linux Kernel Mailing List, Christoph Hellwig,
	Arjan van de Ven

Andrew wrote:

>>  - qla2x00_intr_handler should use spin_lock, not spin_lock_irqsave
>
>Are you sure about that?  I'll need to refresh my interrupt handling
>know-how...
>  
>
It's an optimization that is used by many drivers:
Interrupt handlers are never reentered - if you are within 
qla2x00_intr_handler handling irq x, then it's guaranteed that the 
function won't be reentered by another occurance of the same interrupt.
If your driver registers only one interrupt handler, then you can skip 
disabling the local interrupts - a deadlock is not possible.

You need _irqsave if the spinlock is shared between multiple instances 
of the hba, with different interrupts (i.e. it's possible that 
qla2x00_intr_handler is called for irq y while handling irq x).

--
    Manfred





^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2003-07-19  0:57 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-17 23:40 [ANNOUNCE] QLogic qla2xxx driver update available (v8.00.00b4) Andrew Vasquez
2003-07-18 10:48 ` Christoph Hellwig
2003-07-18 11:23 ` Christoph Hellwig
2003-07-18 12:12   ` Lars Marowsky-Bree
2003-07-18 12:13     ` Christoph Hellwig
2003-07-18 12:26       ` Lars Marowsky-Bree
2003-07-18 12:34         ` Christoph Hellwig
2003-07-18 12:41           ` Lars Marowsky-Bree
2003-07-18 12:46             ` Christoph Hellwig
2003-07-18 13:46   ` Arjan van de Ven
2003-07-18 14:03     ` [ANNOUNCE] QLogic qla2xxx driver update available (v8.00.00b4 ) Jamie Wellnitz
2003-07-18 19:12     ` [ANNOUNCE] QLogic qla2xxx driver update available (v8.00.00b4) Christoph Hellwig
2003-07-18 19:10   ` Christoph Hellwig
2003-07-19  1:05 Manfred Spraul

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).