Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Oct 1996 20:51:41 +0200
From:      se@zpr.uni-koeln.de (Stefan Esser)
To:        jgreco@brasil.moneng.mei.com (Joe Greco)
Cc:        michaelv@MindBender.serv.net (Michael L. VanLoon -- HeadCandy.com), scrappy@ki.net, michaelh@cet.co.jp, mrcpu@cdsnet.net, current@freebsd.org
Subject:   Re: Iozone: local vs nfs drives
Message-ID:  <199610211851.UAA03387@x14.mi.uni-koeln.de>
In-Reply-To: <199610181428.JAA02841@brasil.moneng.mei.com>; from Joe Greco on Oct 18, 1996 09:28:28 -0500
References:  <199610181428.JAA02841@brasil.moneng.mei.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Joe Greco writes:
> > Ah yes.  It must have been someone else that posted that he was using
> > an Adaptec 2940.  I mis-threaded...
> > 
> > I know the NCR supports tagged-command-queuing, also, but since I
> > don't use one (except on some NT machines at work), I don't know what
> > you do to enable it.  Joe Greco would know.
> 
> I take exception to that :-)  Alls I know is that they are enabled by 
> default.
> 
> Run "ncrcontrol":
> 
> # ncrcontrol
> T:L  Vendor   Device           Rev  Speed   Max Wide Tags
> 0:0  SEAGATE  ST31055N         0318  10.0  10.0   8    4
> 1:0  SEAGATE  ST31055N         0318  10.0  10.0   8    4
> 2:0  SEAGATE  ST31055N         0318  10.0  10.0   8    4
> 3:0  SEAGATE  ST31055N         0318  10.0  10.0   8    4
> 4:0  SEAGATE  ST31055N         0318  10.0  10.0   8    4
> 
> I just a day or two ago sent a note to Stefan asking about the maximum
> number of tags allowable...  it looks to me as though IF you are using

Well, and he didn't have time to even read your mail before today ...
(Sorry)

The NCR driver needs a command control block per outstanding request,
which contains information about the command to execute, and especially
the scatter/gather table. This table allows for 33 segments (generally
sufficient to describe a 64KB transfer, if the NCR is expected to handle 
disconnect/reselect on its own, with no host CPU intervention).
The total amount of state storage is some 300 bytes per simultanously 
outstanding command.
If I expect to have 4 disk drives connected and to have each of them 
use 8 tags, there must be command control blocks for 32 commands, and
thos ewill consume 10KB of RAM.

The other limit is introduced by the fact, that the NCR can signal the
CPU the completion of some command, but can not easily let it know, which 
command finished. The CPU has then to check all outstanding commands blocks,
and will complete those that are no longer marked as BUSY.
The CPU has to scan all active command structures, and this makes the 
time per interrupt grow with the number of outstanding commands ...

> the Adaptec stuff that it defaults to 8 tags.  I really don't know
> anything much about the real technical details of this stuff though..

I've seen slightly better throughput results with 8 tags, but this is
not true for all disk drive models. 4 gives most of the advantage that
can be had by using tags (at least 95% of the max. performance) and is
a good choice, IMHO.

Use "ncrcontrol -s tags=8" to make all drives use up to 8 tags, or try
with 16 (the currently implemented hard limit). The driver does not work
too well, if the disk drive does not support as many tags. And going from
8 to 16 tags did reduce performance in just about every test I tried, so
it does not appear to be to low a limit ...

Regards, STefan



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