Contributed by jason on from the help-marco-help-you dept.
Marco Peereboom writes on tech:
I have had some inspiration and redid completely how ami discovers physical disks. This has been a source of very subtle bugs that I never could reproduce but understand how they happened now. What it basically comes down to is that the firmware lies about physical devices; these lies are unpredictable and the previous version of the code trusted by accident some of those lies.
Update (Tue Oct 28 13:18:00 CET 2008): Marco has just commited his changes to the source tree. If you follow -current, please test the improved ami(4)!
Read on for the rest of Marco's email.
While at it I made the interface way faster by only poking physical disks whenever something actually changes. So the first bioctl access takes a couple of seconds, the subsequent ones are instantaneous unless a disk is failed, inserted or removed.
The firmware would also sometimes lie about disk sizes so I actually ask the drive its size.
As a side effect roaming is now handled correctly too which suffered from lies as well.
All in all this makes the ami experience way better. I have tested this on PERC 4e/DC, 4/DC, 3/DCL & LSI MegaRAID Elite 1600.
Now that I have my head in this I'll go ahead and add more firmware commands like manually kick of rebuild. If you want that functionality please test this ASAP or else you'll miss the window of opportunity that I have to work on this.
Finally figured out the hot spare magic for these darned cards. To make it always work we need to issue the set hot spare command polled AND with command id 0xfe. To be able to do this I had to add a drain io mechanism. Not much performance impact besides the fact that setting a hot spare is pretty rare. So now when a disk fails and one assigns a new hot spare it starts the rebuild right away.
Test test test!
Editor's Note: You heard the man. If you have any ami equipment, now is the time to help out!
(Comments are closed)