cvs commit: src/sys/dev/amr amr.c amr_cam.c amr_disk.c amr_pci.c
amrio.h amrreg.h amrvar.h
scottl at samsco.org
Fri Dec 16 00:25:36 PST 2005
Martin Nilsson wrote:
> Scott Long wrote:
>>>> Items 3 and 4 significantly increase the performance of the
>>>> driver. On an
>>>> LSI 320-2X card, transactions per second went from 13,000 to 31,000
>>>> in my
>>> A 238% improvement is at the very least impressive!
>> Yeah, I was shocked at first too. The PCIe controllers can likely do
>> even better than that, but my only PCIe test system had other hardware
>> related instabilities, so I didn't do much testing with it.
> How did you test the transaction rate? I Have a 320-2e and 7*10K disks
> in RAID5 running 6.0/amd64 at present. I could boot from a SATA disk
> with current and see if I get any improvement. As it is now i can
> read/write sequential to the array with about 200MB/s (with 256MB write
> back cache on the card) but on real world random transactions I'm
> limited by the seven 10K disks.
I have a simple test program that spawns a variable number of threads,
with each thread trying to read/write variable sized blocks as fast as
it can. Kind of a worthless test, but good at saturating the system
with I/O, and thus drawing comparisons for driver efficiency. All of
my testing is with RAID-0 and caches enabled, since again I just want to
measure how well the driver can deliver commands to the card, not how
well the card can handle them.
But, to put in real-world persective, Kris could untar a full ports tree
(80,000+ inodes) in around 30 seconds with the new driver. That's kinda
>> I'm a bit worried that old controllers (especially ones that predate the
>> move to i960 CPUs) might be broken with this.
> You mean the old cards with i960 CPUs? The adapters before the Elite
> 1600 that uses the old disk model? Sorry I don't have any of those left
> anymore but you can always get them on ebay for $20 or so if anyone
> still cares about them...
I'm not terribly familiar with the history of MegaRAID, only that there
seemed to be an architectural change early on that involved the driver
having to use different registers in different ways. Some of the
changes in this patch touch that code. I'm also curious if older Elite
cards rely on less efficient timing from the driver.
More information about the cvs-src