Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Nov 2011 14:44:24 -0800
From:      Maksim Yevmenkin <emax@freebsd.org>
To:        Alexander Motin <mav@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: [RFC] ahci(4) patch
Message-ID:  <CAFPOs6qyC%2B_8CrxyoCpXBOTTXbgo=vozLNSzHhsH4Hw=jgvERg@mail.gmail.com>
In-Reply-To: <4EC43ABA.7060407@FreeBSD.org>
References:  <CAFPOs6rU6AKeTNzKhaqxktDb9CN=g-EDMLf2%2Bcyvhq772SymjA@mail.gmail.com> <4EC43ABA.7060407@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Nov 16, 2011 at 2:35 PM, Alexander Motin <mav@freebsd.org> wrote:
> Hi.
>
> On 16.11.2011 23:59, Maksim Yevmenkin wrote:
>>
>> would anyone object to the following ahci(4) patch?
>>
>> =3D=3D
>>
>> --- ahci.c.orig 2011-11-16 21:35:26.000000000 +0000
>> +++ ahci.c =A0 =A0 =A02011-11-16 21:35:41.000000000 +0000
>> @@ -500,7 +500,7 @@
>> =A0 =A0 =A0 =A0for (unit =3D 0; unit< =A0ctlr->channels; unit++) {
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if ((ctlr->ichannels& =A0(1<< =A0unit)) =
=3D=3D 0)
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0continue;
>> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 child =3D device_add_child(dev, "ahcich", =
-1);
>> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 child =3D device_add_child(dev, "ahcich", =
unit);
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (child =3D=3D NULL)
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0device_printf(dev, "faile=
d to add channel
>> device\n");
>> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0else
>>
>> =3D=3D
>>
>> the idea is to have "static" numbering for ada(4) disks.
>
> I do. The only way I see this useful is if you have BIOS configured for
> non-hot-swappable disks, in which case you have some AHCI channels disabl=
ed,
> but want to keep numbers of the rest. While I don't like this mode in
> general, especially when it can't be disabled, that patch could be useful=
 in
> these cases. But in other cases, when you have several AHCI controllers, =
it
> just wont not work. You will receive error on attempt to create second
> ahcich0.

shouldn't achcichX be destroyed when disk is detached/removed/etc.?
the particular problem i'm trying to address is disk re-numbering when
one of the disks fails/removed/etc. i'm trying to use hints to wire
disks to controllers/busses. it works perfectly fine with da(4) disks
(even hot swappable ones) , but i can not make it to work with ada(4)
disks. i'm perfectly fine to hid this under some sort of option
(something similar to ATA_STATIC_ID, AHCI_STATIC_ID for example)

thanks,
max



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFPOs6qyC%2B_8CrxyoCpXBOTTXbgo=vozLNSzHhsH4Hw=jgvERg>