Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Aug 1996 10:30:34 -0700
From:      "Michael L. VanLoon" <michaelv@MindBender.serv.net>
To:        Hal Snyder <hal@post.vale.com>
Cc:        "'freebsd-hackers@freebsd.org'" <freebsd-hackers@freebsd.org>
Subject:   Re: Multiple swaps slow down system? 
Message-ID:  <199608261730.KAA16331@MindBender.serv.net>
In-Reply-To: Your message of Mon, 26 Aug 96 09:15:14 -0500. <01BB932F.47934380@jaguar> 

next in thread | previous in thread | raw e-mail | index | archive | help

>> I don't know why that happens, but I wouldn't expect it to give you
>> much of a performance boost, since IDE doesn't do asynchronous I/O (at
>                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> least under *BSD anyway).  If you have a very busy system, I would
>> expect it to give you a performance drop, in fact.

>I'm not sure what you mean here by "asynchronous".  Can you explain?
>The last time I looked at hd device drivers, SCSI had it all over IDE just
>because of DMA support - the old ST506 interface still used by IDE forced the
>CPU to handle all I/O going to/from the hard drive.  Has this changed?

With SCSI, all drives can be seeking/reading/writing independently and
simultaneously.  The controller merely feeds them data as they come up
for more.  And, if you have a controller and drive(s) that support
tagged-command-queuing, you can even feed the drive several tagged
commands at once, and the drive will just chew on them until it needs
more, while other drives can be doing the same thing.

Original IDE couldn't even seek on two drives simultaneously.  Things
have improved with EIDE (from what I think I understand).  Apparently
there is supposed to be some form of concurrency (though I'm not sure
exactly how much).  There is the ability to do DMA, but I'm not sure
how complete it is compared to bus-master DMA in a good SCSI
controller.  On top of all that, you must have a very modern EIDE
drive to do all this -- an older drive won't work (i. e. will only
work in the old dumb mode).  And the drives have to agree to talk
nicely to each other if you have multiples.  Regardless, there isn't a
*BSD driver yet that takes advantage of EIDE even if you did have the
drives and a good enough controller.

Finally, a good SCSI controller has its own CPU that does all the work
I just described.  That means it can be doing everything necessary to
carry out its work without the help of the main CPU (once the main CPU
feeds it a set of things to work on, of course).  Which means that
your main CPU can continue to work on other things while the SCSI
controller processor is reading/writing data for a different process.
With IDE, the CPU has to sit and read/write from/to the IDE drive in a
tight programmed loop.  Supposedly, EIDE DMA would fix this, if our
driver supported it, and you had smart enough drives.

-----------------------------------------------------------------------------
  Michael L. VanLoon                           michaelv@MindBender.serv.net
        --<  Free your mind and your machine -- NetBSD free un*x  >--
    NetBSD working ports: 386+PC, Mac 68k, Amiga, Atari 68k, HP300, Sun3,
        Sun4/4c/4m, DEC MIPS, DEC Alpha, PC532, VAX, MVME68k, arm32...
    NetBSD ports in progress: PICA, others...
-----------------------------------------------------------------------------



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199608261730.KAA16331>