From owner-cvs-sys Wed Aug 13 10:03:31 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id KAA12776 for cvs-sys-outgoing; Wed, 13 Aug 1997 10:03:31 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (8.8.5/8.8.5) with ESMTP id KAA12748; Wed, 13 Aug 1997 10:02:49 -0700 (PDT) From: "Justin T. Gibbs" Received: (from gibbs@localhost) by freefall.freebsd.org (8.8.6/8.8.5) id KAA00482; Wed, 13 Aug 1997 10:02:49 -0700 (PDT) Date: Wed, 13 Aug 1997 10:02:49 -0700 (PDT) Message-Id: <199708131702.KAA00482@freefall.freebsd.org> To: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG Subject: cvs commit: src/sys/dev/aic7xxx aic7xxx.reg aic7xxx.seq src/sys/i386/scsi aic7xxx.c aic7xxx.h Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk gibbs 1997/08/13 10:02:49 PDT Modified files: sys/dev/aic7xxx aic7xxx.reg aic7xxx.seq sys/i386/scsi aic7xxx.c aic7xxx.h Log: Add a spin lock that prevents the sequencer from attempting to add an entry to the QOUTFIFO when it is full. This should eliminate the "Timed out while idle" problems that many have reported. In truth, this is somewhat of a hack. Although are interrupt latency is low enough that we should be able to always service the queue in time, since each entry must be passed up to the higher SCSI layer for what can be a large amount of processing (perhaps even resulting in a new command being queued) with interrupts disabled, we need this mechanism to avoid overflow. In the future, these additional tasks will be offloaded to a software interrupt handler which should make this hack unnecessary. Revision Changes Path 1.5 +16 -1 src/sys/dev/aic7xxx/aic7xxx.reg 1.75 +10 -1 src/sys/dev/aic7xxx/aic7xxx.seq 1.121 +29 -8 src/sys/i386/scsi/aic7xxx.c 1.42 +6 -1 src/sys/i386/scsi/aic7xxx.h