Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Feb 2003 15:12:40 -0700
From:      Scott Long <scott_long@btc.adaptec.com>
To:        Mike Silbersack <silby@silby.com>
Cc:        Scott Long <scottl@freebsd.org>, src-committers@freebsd.org, cvs-src@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/dev/aac aac.c aac_pci.c
Message-ID:  <3E540158.20504@btc.adaptec.com>
In-Reply-To: <200302192158.h1JLwYJn025529@repoman.freebsd.org>
References:  <200302192158.h1JLwYJn025529@repoman.freebsd.org> <20030219161458.T62705@patrocles.silby.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Mike Silbersack wrote:

> Out of curiosity, how are you testing MPSAFEness other than by visual
> inspection?  I've been pondering making if_vr and if_xl MPSAFE, but I
> really have no clue how to verify that I've done the job correctly.
>
> Mike "Silby" Silbersack
>
>
> On Wed, 19 Feb 2003, Scott Long wrote:
>
>
> >scottl      2003/02/19 13:58:34 PST
> >
> >  Modified files:
> >    sys/dev/aac          aac.c aac_pci.c
> >  Log:
> >  Make the aac driver be INTR_MPSAFE.  Once the interrupt handler 
> determines
> >  that a command completion happened, all further processing is 
> deferred to
> >  a taskqueue.  The taskqueue itself runs implicetely under Giant, but we
> >  already used a taskqueue for the biodone() processing, so this at least
> >  saves the contesting of Giant in the interrupt handler.
> >
> >  Revision  Changes    Path
> >  1.54      +12 -36    src/sys/dev/aac/aac.c
> >  1.29      +3 -2      src/sys/dev/aac/aac_pci.c
> >


I've tested via assertions that the rest of the driver is under
Giant.  All this change really did was move some processing out
of the interrupt path and into the already-existing taskqueue.
The two pieces of the driver that need to be atomic are the
handling of the hardware registers and the handling of the various
queues.  The former is pretty easy to identify via visual inspection,
and the latter has an extensive amount of sanity checking and
debugging built into it.

Scott


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3E540158.20504>