Date: Wed, 13 Aug 1997 11:59:37 -0600 From: Steve Passe <smp@csn.net> To: "Justin T. Gibbs" <gibbs@FreeBSD.ORG> Cc: cvs-committers@FreeBSD.ORG, cvs-all@FreeBSD.ORG, cvs-sys@FreeBSD.ORG Subject: Re: cvs commit: src/sys/dev/aic7xxx aic7xxx.reg aic7xxx.seq src/sys/i386/scsi aic7xxx.c aic7xxx.h Message-ID: <199708131759.LAA24046@Ilsa.StevesCafe.com> In-Reply-To: Your message of "Wed, 13 Aug 1997 10:02:49 PDT." <199708131702.KAA00482@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Justin, > 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. For the record, disabled INTs was the reason that this was showing up in the SMP kernel. Because of a race in an unprotected critical region level-active INTs (ie PCI) could sometimes be left masked when the relevant bit in ipending was cleared, resulting in complete blockage of further INTs. Although this was clearly an SMP problem, having robustness in other parts of the system is appreciated! This leads to the question: when INTs get totally blocked like this, wont the system still freeze, ie should there be a timeout to panic in your spin lock for times like this? -- Steve Passe | powered by smp@csn.net | Symmetric MultiProcessor FreeBSD
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708131759.LAA24046>