From owner-freebsd-hackers Mon Jan 6 15:01:20 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id PAA08026 for hackers-outgoing; Mon, 6 Jan 1997 15:01:20 -0800 (PST) Received: from Sisyphos.MI.Uni-Koeln.DE (Sisyphos.MI.Uni-Koeln.DE [134.95.212.10]) by freefall.freebsd.org (8.8.4/8.8.4) with SMTP id PAA07997 for ; Mon, 6 Jan 1997 15:00:55 -0800 (PST) Received: from x14.mi.uni-koeln.de (annexr2-44.slip.Uni-Koeln.DE) by Sisyphos.MI.Uni-Koeln.DE with SMTP id AA12802 (5.67b/IDA-1.5 for ); Mon, 6 Jan 1997 23:59:19 +0100 Received: (from se@localhost) by x14.mi.uni-koeln.de (8.8.4/8.6.9) id XAA04895; Mon, 6 Jan 1997 23:59:06 +0100 (CET) Message-Id: Date: Mon, 6 Jan 1997 23:57:45 +0100 From: se@freebsd.org (Stefan Esser) To: tom@sdf.com (Tom Samplonius) Cc: hackers@freebsd.org Subject: Re: ncr 810 References: X-Mailer: Mutt 0.55-PL15 Mime-Version: 1.0 In-Reply-To: ; from Tom Samplonius on Jan 6, 1997 13:20:17 -0800 Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Jan 6, tom@sdf.com (Tom Samplonius) wrote: > > How many concurrent commands can the ncr drive + a NCR 810 controller > handle? > > I know the ahc driver can handle 255 active commands, but only with scb > paging turned on. There is no controller limit on the number of active commands. The NCR keeps all variables in system DRAM (some variants have 4KB RAM on the controller chip, and can address it transparently, but the NCR driver does not yet take advantage of this feature). But remember that multiple active commands always cause some additional overhead. There are data structures, that have to be searched for a matching element, sometimes, and the NCR driver tries to keep them as simple as possible (for example to allow for simultanous accesses from the host CPU and the NCR without need for mutexes). I chose 4 tags per device as the default, and think that 8 give slightly better performance, but add more system overhead than I'm willing to pay. Others think differently, and suggest that a higher number of tags may be of advantage in multiple reader situations. The NCR driver checks every outstanding command for completion on each interrupt. This simplifies the driver (the NCR does only request a polling sweep from the CPU, instead of adding the ID of the completed request to some Queue), and is advantagous overall, I think. There is some memory required per command, too, BTW. A few hundred bytes per command (for the scatter/gather table, for example). With many simultanous commands, you may need tens to hundreds of KB for those tables ... Why do you need that many simultanous active commands ? Regards, STefan