From owner-freebsd-scsi Mon Feb 7 6:48:15 2000 Delivered-To: freebsd-scsi@freebsd.org Received: from narnia.plutotech.com (narnia.plutotech.com [206.168.67.130]) by builder.freebsd.org (Postfix) with ESMTP id 370F73F45 for ; Mon, 7 Feb 2000 06:48:12 -0800 (PST) Received: (from gibbs@localhost) by narnia.plutotech.com (8.9.3/8.7.3) id HAA43271; Mon, 7 Feb 2000 07:35:22 -0700 (MST) Date: Mon, 7 Feb 2000 07:35:22 -0700 (MST) From: "Justin T. Gibbs" Message-Id: <200002071435.HAA43271@narnia.plutotech.com> To: Chris Johnson Cc: scsi@FreeBSD.org Subject: Re: BT-948 timeouts X-Newsgroups: pluto.freebsd.scsi In-Reply-To: <20000206141744.A2557@palomine.net> User-Agent: tin/pre-1.4-980818 ("Laura") (UNIX) (FreeBSD/4.0-CURRENT (i386)) Sender: owner-freebsd-scsi@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org In article <20000206141744.A2557@palomine.net> you wrote: > I just installed 3.4-RELEASE (and subsequently updated it to 3.4-STABLE), and I > get lots of this kind of thing: > > da0 at bt0 bus 0 target 6 lun 0 > da0: Fixed Direct Access SCSI-2 device > da0: 10.000MB/s transfers (10.000MHz, offset 15), Tagged Queueing Enabled > da0: 4110MB (8418816 512 byte sectors: 255H 63S/T 524C) The buslogic cards don't give any indication of the "queue full" condition. This means that CAM cannot know when to reduce the number of commands sent to a device if it can only handle a few. My guess is that the buslogic firmware is not gracefully dealing with the queue full condition so we see timeouts. My hunch is that if you forced the number of concurrent transactions down to 8 (what I recall is the limit for this drive), then your timeouts will cease. You can do this with the "camcontrol tags" command. In the case of the Linux driver, the greatest number of tags it will automatically assign to any one device is 31 (typically a range of 10-31 tags). You can manually bump this up to 64, but that is the max. CAM on the other hand, has a round-robin scheduler to maintain tag fairness, so if there is only one device active on the bus, it will be allowed to consume all controller resources unless there is a lower, per-device, limit in place. In the current FreeBSD driver, we don't limit the per-device count at all. My guess is that this difference in algorithms accounts for why Linux seems to work. -- Justin To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-scsi" in the body of the message