Date: Mon, 22 Sep 2008 19:40:43 -0700 From: Sean Bruno <sbruno@miralink.com> To: freebsd-drivers@freebsd.org Cc: =?ISO-8859-1?Q?dt?= <sos@FreeBSD.org>, =?ISO-8859-1?Q?S=F8ren_Schmi?= Subject: Re: [RELENG_6] ATARAID oddity Message-ID: <48D8572B.3060204@miralink.com> In-Reply-To: <48D82921.3010904@miralink.com> References: <200809222203.WAA20882@sopwith.solgatos.com> <48D82921.3010904@miralink.com>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
Sean Bruno wrote:
> Dieter wrote:
>>> I.e. if you insert a drive that was part of a volume from an Adaptec
>>> RAID controller into another system, the new system will attempt to
>>> treat that disk as though it were associated with a HOST Raid
>>> controller.
>>>
>>> I don't think that this is the desired behavior. Even if the host
>>> raid meta-data is detected, the system shouldn't attempt to treat
>>> the disk as part of a HOST raid set without the appropriate
>>> controller in the system.
>>>
>>
>> Even if there *is* an appropriate controller in the system,
>> presumably it
>> isn't going to work unless the disk is connected to that controller.
>>
>> We want the ability to migrate a disk from Adaptec to some other
>> controller without screwy things happening.
>> _______________________________________________
> Looking over the ata-raid.c code that controls the detection, it's
> pretty obvious
> that it doesn't check to see if the disk belongs to a controller.
> Moreover it
> blindly tries to use ANY drive in the system(LSI will do this as well)
> if it detects
> meta data.
>
> I'm working on a simple patch for this, but I need to figure out
> which cards are
> using the Adaptec metadata format. Any ideas where I should look? I
> seem to have
> 1 card available(3010S) that I can validate against.
>
>
Well, I tried out this little patch for my system. This probably breaks
a lot of stuff, but
it's the beginning of what I think is more correct behavior for Adaptec
Host-RAID.
If anyone has Adaptec Host-RAID systems out there, please send me the
PCI-IDs of your
boards before your try this patch. I would assume that there are some
Host RAID adapters
out there that don't conform to the pci-ids I have put in this patch.
If you have one, let me know.
--
Sean Bruno
MiraLink Corporation
6015 NE 80th Ave, Ste 100
Portland, OR 97218
Cell 503-358-6832
Phone 503-621-5143
Fax 503-621-5199
MSN: sbruno@miralink.com
Google: seanwbruno@gmail.com
[-- Attachment #2 --]
Index: ata-pci.c
===================================================================
--- ata-pci.c (revision 5956)
+++ ata-pci.c (working copy)
@@ -532,6 +532,7 @@
switch (pci_get_vendor(dev)) {
case ATA_ACARD_ID: return "Acard";
case ATA_ACER_LABS_ID: return "AcerLabs";
+ case ATA_ADAPTEC_ID: return "Adaptec";
case ATA_AMD_ID: return "AMD";
case ATA_ATI_ID: return "ATI";
case ATA_CYRIX_ID: return "Cyrix";
Index: ata-raid.c
===================================================================
--- ata-raid.c (revision 5956)
+++ ata-raid.c (working copy)
@@ -1304,6 +1304,12 @@
/* prioritize vendor native metadata layout if possible */
if (devclass == pci_devclass) {
switch (pci_get_vendor(GRANDPARENT(device_get_parent(subdisk)))) {
+ /* Adaptec HostRAID */
+ case ATA_ADAPTEC_ID:
+ if (ata_raid_adaptec_read_meta(subdisk, ata_raid_arrays))
+ return 0;
+ break;
+
case ATA_HIGHPOINT_ID:
if (ata_raid_hptv3_read_meta(subdisk, ata_raid_arrays))
return 0;
@@ -1358,10 +1364,6 @@
/* handle controllers that have multiple layout possibilities */
/* NOTE: the order of these are not insignificant */
- /* Adaptec HostRAID */
- if (ata_raid_adaptec_read_meta(subdisk, ata_raid_arrays))
- return 0;
-
/* LSILogic v3 and v2 */
if (ata_raid_lsiv3_read_meta(subdisk, ata_raid_arrays))
return 0;
Index: ata-pci.h
===================================================================
--- ata-pci.h (revision 5956)
+++ ata-pci.h (working copy)
@@ -71,6 +71,8 @@
};
/* defines for known chipset PCI id's */
+#define ATA_ADAPTEC_ID 0x1044
+
#define ATA_ACARD_ID 0x1191
#define ATA_ATP850 0x00021191
#define ATA_ATP850A 0x00041191
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?48D8572B.3060204>
