2002-06-05 17:22:44

by Shane Walton

[permalink] [raw]
Subject: Stream Lined Booting - SCSI Hold Up

Good day,

I work with US DoD systems, and one of my requirements
is to boot an ix86 based system with an aic7xxx SCSI
interface in 15 seconds. One of the apparent problems
is the SCSI BIOS and aic7xxx driver take a long time
to find one drive and then probe other empty channels.
Is there a way to inform the aic7xxx driver of
connected hardware to limit the initialization phase?
Thanks for the help.

Regards,

=====
Shane M. Walton, Software Engineer
Digital System Resources, Inc.
[email protected] : [email protected]
703.234.1674

__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com


2002-06-06 20:44:24

by Patrick Mansfield

[permalink] [raw]
Subject: Re: Stream Lined Booting - SCSI Hold Up

On Wed, Jun 05, 2002 at 10:22:40AM -0700, Shane Walton wrote:
> Good day,
>
> I work with US DoD systems, and one of my requirements
> is to boot an ix86 based system with an aic7xxx SCSI
> interface in 15 seconds. One of the apparent problems
> is the SCSI BIOS and aic7xxx driver take a long time
> to find one drive and then probe other empty channels.
> Is there a way to inform the aic7xxx driver of
> connected hardware to limit the initialization phase?
> Thanks for the help.

I never thought to disable the reset, getting rid of the SCSI resets
probably cuts 10-20 seconds off my boot time.

You can turn of the AIC driver reset, and shorten the selection timeout,
see linux/drivers/scsi/README.aic7xxx for details.

With my hardware, I can also disable the BIOS reset, and limit BIOS
scanning from the BIOS config screen (hit ctl-A during boot).

On my system, it saves me about 10 seconds to boot with:

lilo: linux-1 aic7xxx=no_reset aic7xxx=seltime:3

There are no options in linux scsi to limit the scanning of the target
id's or channels, I don't think there are any in the AIC driver either.

You could hack the driver and lower the max_id, and/or lower max_channel,
or somehow disable unused channels, but I doubt it will save much time
(7 id's * 2 channels * 32 ms/per-selection-timeout or so).

-- Patrick Mansfield

2002-06-07 16:51:55

by Shane Walton

[permalink] [raw]
Subject: Re: Stream Lined Booting - SCSI Hold Up

Thank you all for your replies. Disabling the SCSI
reset helps much, but not enough. I ended up loading
a RAM disk to start key binaries to fulfill this
requirement, afterwards I then load the aic7xxx module
and pivot_root to the real root. My biggest problem
is
the BIOS level resets and POST. Thanks for your time.

Regards,

=====
Shane M. Walton, Software Engineer
Digital System Resources, Inc.
[email protected] : [email protected]
703.234.1674

__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com

2002-06-07 18:11:52

by kaih

[permalink] [raw]
Subject: Re: Stream Lined Booting - SCSI Hold Up

[email protected] (Shane Walton) wrote on 07.06.02 in <[email protected]>:

> Thank you all for your replies. Disabling the SCSI
> reset helps much, but not enough. I ended up loading
> a RAM disk to start key binaries to fulfill this
> requirement, afterwards I then load the aic7xxx module
> and pivot_root to the real root. My biggest problem
> is
> the BIOS level resets and POST. Thanks for your time.

* Generic BIOS:
On modern BIOSes, there are usually several options that can be changed
to speed up that part - switching off the memory check, the floppy seek,
and so on.

* Adaptec BIOS:
It's been a while since I saw that, but there's often stuff that can be
switched in a SCSI BIOS as well. Such as which targets and LUNs it will
look at, what options it will try, if those options can be negotiated,
if it will try to spin up disks, and so on. Some of those options also
affect boot speed.

You might need to experiment some to determine the fastest setting.

But beware that *some* settings can at least theoretically make a reboot
hang that's not coming from power-off. (If the boot disk doesn't spin up
by itself, that can usually be changed by a jumper; the BIOS should not
*need* to spin up disks.) And turning off error checks means - just like
one would expect - that some errors aren't checked for.

MfG Kai

2002-06-07 22:55:38

by Patrick Mansfield

[permalink] [raw]
Subject: Re: Stream Lined Booting - SCSI Hold Up

On Thu, Jun 06, 2002 at 01:44:19PM -0700, Patrick Mansfield wrote:

> On my system, it saves me about 10 seconds to boot with:
>
> lilo: linux-1 aic7xxx=no_reset aic7xxx=seltime:3
>

BTW, the above results in an infinite loop on shutdown, as the aic
driver adds a reboot callback for each "aic7xxx=" option, pointing
to static data, and ends up getting linked on a list pointing to
itself. Using:

aic7xxx=no_reset,seltime:3

I have no problems.

-- Patrick Mansfield

2002-06-08 03:19:03

by Justin T. Gibbs

[permalink] [raw]
Subject: Re: Stream Lined Booting - SCSI Hold Up

>On Thu, Jun 06, 2002 at 01:44:19PM -0700, Patrick Mansfield wrote:
>
>> On my system, it saves me about 10 seconds to boot with:
>>
>> lilo: linux-1 aic7xxx=no_reset aic7xxx=seltime:3
>>
>
>BTW, the above results in an infinite loop on shutdown, as the aic
>driver adds a reboot callback for each "aic7xxx=" option, pointing
>to static data, and ends up getting linked on a list pointing to
>itself.

You're using an old version of the driver then. 6.2.8 is the
latest.

--
Justin