FW: PCI changes -- SCSI reordering question

Brian Schau (bsc@fleggaard.dk)
Fri, 10 Apr 1998 12:51:32 +0200


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------ =_NextPart_000_01BD647F.63F114D0
Content-Type: text/plain;
charset="iso-8859-1"

Hi,

I have been in exactly the same situation as the two gentlemen below.
I (and my colleagues at Fleggaard) tried to add an extern disk-array to
an onboard controller (aic7xxx) in a machine which had to boot on
devices connected to a DPT card .... (that was a long sentence!).
A look into linux/drivers/scsi/hosts.c reveals that the scsi-codes tries
to register the hosts in a strict order. Too bad for us ...
eata_dma (DPT) is detected after the aic7xxx --- bye, bye root disk!

Solution: Apply the attached hack/patch. It patches cleanly
against 2.0.33.

How to patch:

1) cd /into/dir/where/linux/is/stored
# ie. if the path to your linux-source tree is /usr/src/linux,
you should cd into /usr/src
2) copy the osd_patch.diff.gz into this 'base-linux-source'
directory
3) gunzip osd_patch.diff.gz
4) patch -p0 < osd_patch.diff
5) now recompile your kernel (2.0.33) as usual

What files have been touched?

1) linux/init/main.c (a couple of lines)
2) linux/drivers/scsi/hosts.c (a lot of lines)
3) linux/drivers/scsi/hosts.h (a couple of lines)
4) linux/drivers/scsi/scsi_syms.c (a couple of lines)

What will it give you?

You can now specify the 'scsi_order' option in lilo:

append = "scsi_order=eata_dma,aic7xxx"

The 'scsi_order' tells the kernel the order it should register the
hosts. This should guarantee that disks on 'eata_dma' at any time
will be named /dev/sdaX, and that disks on 'aic7xxx' will be named
/dev/sdbX.

Other examples.

Consider the following setup. (in the following, 'advansys-card' is a
card driven by the advansys-driver. Likewise for 'aic7xxx-card' and
'eata_dma-card'). A server is equipped with three scsi-cards:

1) Advansys-card. Attached: Flatbed-scanner.
2) Aic7xxx-card. Attached: Nothing.
3) Eata_dma-card. Attached: Bootdisk.

The boot disk is on the eata_dma card. Under normal circumstances
the eata_dma-card will be detected last (list order is advansys,
aic7xxx, eata_dma). Here it doesn't matter as there are no disks on
the other cards. Now add a disk to the aic7xxx-card:

1) Advansys-card. Attached: Flatbed-scanner.
2) Aic7xxx-card. Attached: Disk.
3) Eata_dma-card. Attached: Bootdisk.

Kaboom?!?! The aic7xxx-card is detected before the eata_dma-card.
Normally this would mean "Bye, bye, root/boot disk!". Write one of
these in lilo.conf:

1) append = "scsi_order=eata_dma,aic7xxx,advansys"
2) append = "scsi_order=eata_dma,advansys,aic7xxx"
3) append = "scsi_order=eata_dma,aic7xxx"
4) append = "scsi_order=eata_dma,advansys"
5) append = "scsi_order=eata_dma"

If the kernel is compiled with, say, support for 3 scsi-cards, and
they're not all listed as argument to the 'scsi_order' option, the
detection-order will be:

1) cards listed as arguments to the 'scsi_order' option
2) the rest, from the start of the 'builtin' scsi-list

What cards can be specified & what are their names?

Have a look at linux/drivers/scsi/hosts.c (2.0.33, line 222). This is
the 'builtin' list. It starts like this:

scsi_list builtin_scsi_hosts[] =
{
#ifdef CONFIG_AMIGA
#ifdef CONFIG_A3000_SCSI
{ "a3000", 0,
A3000_SCSI },
#endif
...

First entry ("a3000") is the name of the card. This is also the name
you should supply to 'scsi_order'. Scroll down to line 332
("eata_dma") or line 352 ("ppa") --- you get the idea.

What platforms have the patch been tested on?

Linux-i586 (Suse 5.0): eata_dma & aic7xxx NO_SMP!
Linux-i686 (Unifix 2.0): eata_dma & aic7xxx SMP!

... both platforms runs 2.0.33.

Todo.

1) It would be nice if the patch went into the kernel source
tree ( :o).
2) It would be nice if the Scsi_Host_Template were extended
with the following two fields:

char scsi_name[40];
int position;

# (this would place the responsibility of naming the cards
at the developers of these cards. 'builtin_scsi_hosts[]' would then
look as in the older days ...)

Last words.

I don't think/hope this is considered a 'final' solution. The only
'right' thing to do, is to implement what is described below (HP-UX &
Solaris works this way --- why shouldn't linux?). But until then,
I think my solution will keep the crowd happy?

Thank you for your time & have a nice easter-holiday! (... I will!)

Sincerely,

Brian Schau


> -----Original Message-----
> From: Jon Lewis [SMTP:jlewis@inorganic5.fdt.net]
> Sent: Friday, April 10, 1998 6:18 AM
> To: Manuel J. Galan
> Cc: Linux Kernel List
> Subject: Re: PCI changes -- SCSI reordering question
>
> On Thu, 9 Apr 1998, Manuel J. Galan wrote:
>
> > New SCSI reordering can be a real mess, I was lucky not having
> > disks on second adapter, else sde -> sda, sda -> sdb, etc.
> > Nice cycle ;-), mad /etc/fstab, and panic on boot.
>
> I've not kept up with the talk on devfs...but has it been considered
> that
> a naming scheme sort of like the following be used?
>
> /dev/scsi/ncr53c8xx/0/d0l0s0
>
> i.e. controler / number / id lun partition
> type within
> type
>
> That would remove the ambiguity of having a controller0, controller1,
> etc...since SCSI host probing order can change, but the driver name is
> less likely to, and you wouldn't have to worry about device names
> changing
> just because you add a device or controller.
>
> Adding 2 disks to separate controllers on a 2.0.x system that already
> had
> several disks on each, I managed to really confuse myself.
>
> ------------------------------------------------------------------
> Jon Lewis <jlewis@fdt.net> | http://noagent.com/?jl1 for cheap
> Network Administrator | life insurance over the net.
> Florida Digital Turnpike |
> ______http://inorganic5.fdt.net/~jlewis/pgp for PGP public key____
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe
> linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu

------ =_NextPart_000_01BD647F.63F114D0
Content-Type: application/octet-stream;
name="osd_patch.diff.gz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="osd_patch.diff.gz"

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

------ =_NextPart_000_01BD647F.63F114D0--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu