Re: [PATCH] aic79xx should be able to ignore HostRAID enabled adapters

Jeff Garzik
2005-12-01T17:56:40Z

On Thu, Dec 01, 2005 at 05:44:12PM +0000, Christoph Hellwig wrote:
> On Thu, Dec 01, 2005 at 08:44:15AM -0500, Salyzyn, Mark wrote:
> > The HostRAID driver has a specialized (ok, yes, also proprietary) CHIM
> > and sequencer where attention can be focused on techniques of
> > performance improvement and OS agnostics. In addition, the RAID code in
> > that driver understands the hardware, CHIM & sequencer and takes
> > advantage of features that just can not be performed by an abstracted dm
> > or an LLD. RAID1 is handled under some conditions, for instance, with
> > one DMA operation over the PCI bus rather than two duplicated for each
> > target, greatly increasing the performance.
>
> If you contributed that sequencer code and sent me a card I'm pretty sure
> I'd love into adding support for this to a special DM module. In fact we'd
> need somthing similar for Certain SATA boards aswell.
>
> OTOH the raid flag would be useless aswell there, because we'd of course
> support this on identical cards without the raid bios aswell :)

I'd love to see a hardware-aware DM RAID module, since I want to do the
same thing for sata_sx4 (Promise SX4).

SX4 has four ATA engines, an on-card ECC-capable DIMM, and an on-card
XOR engine. The OS driver has complete control over these facilities.
Unfortunately, driving the card in "dumb mode" means that performance
takes a major hit, since each transaction looks like:

submit DMA memcpy to HDMA engine
get HDMA interrupt
# now, the data is on the card
submit ATA write command
get ATA interrupt

All data must be copied to/from the DIMM, before the ATA engine can do
anything. Further, there is only one HDMA engine, but 4 ATA engines.

Ideally, RAID1 would copy the data to the card ONCE, then start 2 ATA
engines. Ideally, RAID5 would copy the data to the card ONCE, XOR it,
then start the ATA engines. And the rest of the DIMM should be used as
write-through cache.

I'm sure DM can do that, but I haven't researched how.

I'll supply a card (and engineering help, but no docs, alas) to anyone
interested in trying out this stuff.

Jeff