From owner-freebsd-current Fri Oct 18 09:32:20 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id JAA05542 for current-outgoing; Fri, 18 Oct 1996 09:32:20 -0700 (PDT) Received: from freefall.freebsd.org (localhost.cdrom.com [127.0.0.1]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id JAA05537; Fri, 18 Oct 1996 09:32:16 -0700 (PDT) Message-Id: <199610181632.JAA05537@freefall.freebsd.org> To: 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 In-reply-to: Your message of "Fri, 18 Oct 1996 09:28:28 CDT." <199610181428.JAA02841@brasil.moneng.mei.com> Date: Fri, 18 Oct 1996 09:32:16 -0700 From: "Justin T. Gibbs" Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >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 ===========================================