Subject: Re: [Fwd: Re: DaemonNews article about boot speedups]
To: <>
From: Chen Zhou <>
List: tech-kern
Date: 09/05/2000 10:38:08
> I believe it was the bus attach/reset that was expensive.  The device
> probes themselves are actually quite quick.  And the only reason the
> bus attach/reset is so expensive is due to the fact that every probe
> waits for a settle.  Now, what you do is go out and establish all your
> bus attaches at the same time (roughly), send out resets to them all
> at the same time, and wait 2s + ((nbuses - 1) * attach_latency), and
> then go back and rescan each bus for its devices.  Kind of a breadth-first
> search rather than depth-first.


Actually, in our experiement, we did NOT skip the "2s + ((nbuses - 1) *
attach_latency)" SCSI wait(see figure 2 & 3 on page 5). Although skipping
that step worked fine in our setup. I did noticed some reliablity issues
when I tried it on a fully loades SCSI system. In spite of this, the
improvement was still quite substantial, we were suprise by the results

While the bus attachments are asynchronous, the actual the device scan
still takes place sequentially.  see the loop in the function
"scsi_probe_bus(bus, target, lun) in /usr/src/sys/dev/scsipi/scsiconf.c
One of the ideas behind our speedboot stems from the notion to short
circuit this very loop.

Thank you for your support and feedback.

Chen Zhou 

Also My email address has changed as I am no longer at Columbia (I
contacted daemonnews before the article was published, but didn't get a
response). Please send future mail to <>