Newsgroups: bit.listserv.win3-l
Date:         Tue, 22 Dec 1992 13:43:00 EST
From:         Vince Scarafino <Scarafino@MULTICS-A.PMS.FORD.COM>
Subject:      Re: Slow SCSI disk in Windows 3.1 Enh mode

 >Date:  19 December 1992 08:38 est
 >From:  NATHAN BRINDLE <NBRINDLE%INDYCMS.BITNET at PUCC.PRINCETON.EDU>
 >Subject:  Re: Slow SCSI disk in Windows 3.1 Enh mode

 >>On Fri, 18 Dec 1992 10:45:49 EST NATHAN BRINDLE said:
 >>>Seriously, folks ought to do a <little> research before posting replies
 >>>like Wael did.  Telling someone to delete SMARTDRV from their CONFIG.SYS
 >>>because it also shows up to be executed in AUTOEXEC.BAT could potentially
 >>>cause the poor questioner a LOT of trouble.
 >>
 >> Could you please tell us what kind of trouble you expect from stopping
 >> a file from being loaded twice? I just deleted mine, and could see no
 >> apparent problem. But maybe there will be....?
 >>
 >> Morten
 >>
 >That's my point.  I <don't know>.  Note above I said <potentially>.  If
 >SMARTDRV has been caching in double_buffer mode for SCSI all along, it
 >may not take too well to not double buffering anymore.  I would be afraid
 >of corrupting my data or losing it altogether if I were to delete something
 >from the startup configuration that SMARTDRV needs when it is running.
 >
 >I see a lot of "advice" come across this list that too much of the time ends
 >up being refuted by someone who knows better.  All I'm asking is that people
 >take a little more time with their answers and make sure they know what
 they're
 >talking about before they post.  I didn't post a solution; I posted a warning
 >based on a feeling that Microsoft wouldn't set you up that way unless there
 >was a reason.  I know that's not always the case :) but I'm leaving well
 enough
 >alone.  Maybe someone from Microsoft ought to jump in here and give us an
 >explanation?

I'm not from Microsoft, but I can offer an explanation.  Many SCSI
controllers user direct memory access techniques to provide the I/O
service.  The controller has a processor that reads directly from or
writes directly to a buffer area that is in the Intel processors real
memory and virtual address space.  Windows uses a double buffering
technique so that it doesn't interfere with what the controller
processor is doing.

The way that SMARTDRV was designed requires some of its environment to
be set up specially for certain options *before* it is run.  Thus the
config.sys entry allows SMARTDRV a chance to construct such an
environment change.  (The double_buffer option is one of those options
that needs it.)  So, it's necessary to specify that you want double
buffering via the config.sys entry.  When SMARTDRV is invoked from the
command line, it sees the modified environment and runs the wanted
option(s).

It is possible that with certain SCSI DMA controllers and Windows
running without double buffering, that you can get you input and/or
output pretty badly scrambled while its coming and/or going.  Could
cause quite a mess.  If you are lucky the scrambling is so bad that you
don't get very far before everything grinds to a halt.  However, you've
got no real insurance that the failure mode will be so innocuous.
Yep......  you *could* be in a *real* mess if you had the unlucky
combination of SCSI controller characteristics and particular
application execution characteristics.

Vince