Skip site navigation (1)Skip section navigation (2)
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>