Re: duplexed I/O Ben Laurie (ben@algroup.co.uk)
Wed, 23 Sep 1998 23:38:56 +0100

shap@eros.cis.upenn.edu wrote:
> EROS (and, I assume, KeyKOS) generates requests in page-sized chunks.
> On devices that have programmable DMA it is vitally important that the
> drive have an opportunity to perform request merging. We therefore
> want to maximize the information that is visible to the disk driver.
> Restricting the queue to a single request defeats this.
>
> > We may read the same logical page into two frames at the same
> > time, but that gets chalked up to market inefficiency. The first one
> > reported complete, gets used, and the others have their page frames
> > returned to the free pool when they complete.
>
> This is an option that never occurred to me, and I'm rather embarassed
> about it. This is a good idea.

It ain't as simple as that, though, is it? To take an extreme case, suppose we can merge all the currently outstanding requests into one huge 50 MB read - and we have two drives that could satisfy that read - clearly giving them both the whole 50 MB to read is suboptimal - they should get half each.

Secondly, I'm not sure where your driver sits - but assuming we are talking layered drivers, suppose the two disk drivers share the same underlying SCSI bus - letting them both have a go is not necessarily so great, because they tie up the bus while they do it. Also, although SCSI detach seems like a good idea in these cases, I've seen it take a remarkably long time on some devices (like a millisecond) to detach and reattach.

Cheers,

Ben.

-- 
Ben Laurie            |Phone: +44 (181) 735 0686| Apache Group member
Freelance Consultant  |Fax:   +44 (181) 735 0689|http://www.apache.org/
and Technical Director|Email: ben@algroup.co.uk |
A.L. Digital Ltd,     |Apache-SSL author     http://www.apache-ssl.org/
London, England.      |"Apache: TDG" http://www.ora.com/catalog/apache/

WE'RE RECRUITING! http://www.aldigital.co.uk/