Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Feb 2003 18:16:30 -0500
From:      Andrew Gallatin <gallatin@cs.duke.edu>
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:  <20030219181629.A46948@grasshopper.cs.duke.edu>
In-Reply-To: <20030219161458.T62705@patrocles.silby.com>; from silby@silby.com on Wed, Feb 19, 2003 at 04:16:18PM -0600
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 [silby@silby.com] 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.

What I did when I made my out-of-tree Myrinet driver MPSAFE was to
basically make my own big dumb lock.  Except that the lock is
per-softc, rather than for the whole kernel.  Eg, I enter my transmit
routine and acquire my dumb lock, releasing it when I leave.
Similarly for the interrupt routine.  My driver is simple, and uses
neither miibus nor busdma, which may be possible places where you
could get into trouble.  I've beaten the snot out of it, and seen no
LOR's and no deadlocks, and a huge performance boost -- back to nearly
80% of 4.x for some netperf workloads from 60% or so (sorry for the
vague generalizations).

I should probably get the lock in my ioctl routine, but I haven't
bothered so far.

I'd love to see you make if_xl MPSAFE.

Drew




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




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