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>