Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Oct 1996 09:32:16 -0700
From:      "Justin T. Gibbs" <gibbs@freefall.freebsd.org>
To:        Joe Greco <jgreco@brasil.moneng.mei.com>
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:  <199610181632.JAA05537@freefall.freebsd.org>
In-Reply-To: Your message of "Fri, 18 Oct 1996 09:28:28 CDT." <199610181428.JAA02841@brasil.moneng.mei.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
>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
>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 rely on the SCSI gods for this info.
>
>... JG

Tag identifiers are in the range of 0-255.  The allows each target/lun to
have at most 256 tagged transactions open at a time (I'm talking SCSI-II
here - SCSI III expands this a bit for upcoming bus types).  So, the
max number of tags depends really on a few things:

1) How many tags can your drive support?
	- Early Quantum drives supports up to 16
	- Most modern drives support either 32 or 64
2) How many transactions your controller can support on a per target/lun
basis.
	- For the aic7xxx cards, controller resources are shared across all
	  target/luns, so this is your SCB count, or once I get paging to
	  work well, 255.
	- For the NCR, resources are allocated separately for each
	  target/lun and is limited by NCR_MAX_TAGS and probably the
	  hard SCSI-II limit of 256 tags.

The current 2940 driver 'guesses' at how man tags to give to each device
because it does not have a good way of modulating them and communicating
those changes to the generic SCSI layer.  This has changed with the code on
the 'SCSI' branch.  On the 'SCSI' branch, the aic7xxx driver tells the
generic SCSI layer that it has X openings on the controller and that each
target has either a max of 2 openings if non-tag capable or X openings if
tag capable with X being the number of SCBs on the controller or 255 if you
are paging.  The generic SCSI layer then performs round-robin among all
targets to ensure resource fairness.  It also looks for the QUEUE FULL or
BUSY condition in order to reduce that max number of device openings if it
exceeds the capacity of the device. (some early drives like the Quantum LPS
series return BUSY instead of QUEUE FULL, so you have to watch for this
condition recurring with the same number of transactions pending every
time).

--
Justin T. Gibbs
===========================================
  FreeBSD: Turning PCs into workstations
===========================================



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