Re: [PATCH] Re: SCSI scanning

From: Jeremy Higdon (jeremy@classic.engr.sgi.com)
Date: Tue Sep 19 2000 - 23:30:37 EST


On Sep 19, 10:35am, Eric Youngdale wrote:
>
> OK, my guess is that we may need to do some tweaking to the Makefile.
> The basic idea is that you need to probe for hosts in a specific order.
> The reason for this is that some host adapters emulate other types of
> hardware. For example, some Buslogic cards emulate Adaptec 1542.
> Typically in such cases you want the Buslogic driver to handle the card and
> not the 1542 driver (mainly for performance reasons - Leonard would probably
> have more to say about this). There *may* be other instances where probing
> for one type of card can screw up another type of card, but I haven't heard
> of cases like this in some time now,
>
> There are a handful of others - the comments in the initializer in
> hosts.c explain some of them. I hope there are not others which people
> failed to document.
>
> A second potential gotcha - for compiled in drivers, I think that
> low-level drivers should be initialized prior to upper level drivers. The
> reason for this is that not all of the upper level drivers are capable of
> resizing the arrays on the fly (disk and cdrom are the two exceptions).
> Yes, cleaning this up is on the list of things to do (it got partly done for
> 2.4), but fixing this is a nasty problem that reaches it's bony fingers all
> the way up into some of the filesystems (essentially those stupid arrays in
> ll_rw_blk which are read without any type of spinlock protection). The
> CONFIG_SD_EXTRA_DEVS parameter is used to pre-allocate room in the arrays
> for additional devices, so for systems with small numbers (< 40) of disks
> things may just happen to work.
>
> For now, the trick should simply be to keep the upper level drivers at
> the end of the list of objects to be linked in so the initializers run last.
> Thus my gut tells me the correct link order should be:
>
> 1) SCSI core.
> 2) low-level drivers (in same order as specified in hosts.c).
> 3) upper level drivers.
>
> -Eric

My system has both an Adaptec adapter and a Qlogic adapter. The number of
disks on the Qlogic was variable (it was attached to a SAN). The boot
disk is attached to the Adaptec. If the Qlogic was probed first, then
linux could not find the root device, so I had to move the Adaptec 7xxx
above the Qlogic in hosts.c.

Is there another way to do this? If so, I'd like to know. If not, then
we need the same configurability with the new scheme.

jeremy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 21:00:22 EST