Date: Wed, 19 Feb 2003 17:30:20 -0700 From: Scott Long <scott_long@btc.adaptec.com> To: Mike Silbersack <silby@silby.com> Cc: Andrew Gallatin <gallatin@cs.duke.edu>, 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: <3E54219C.9030103@btc.adaptec.com> In-Reply-To: <200302192158.h1JLwYJn025529@repoman.freebsd.org> References: <200302192158.h1JLwYJn025529@repoman.freebsd.org> <20030219161458.T62705@patrocles.silby.com> <20030219181629.A46948@grasshopper.cs.duke.edu> <20030219182122.N62705@patrocles.silby.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Mike Silbersack wrote: > On Wed, 19 Feb 2003, Andrew Gallatin wrote: > > > >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 > > > Ugh, miibus, I had forgotten about that... well, I guess it'll take a bit > of work to doublecheck everything. The busdma routines are already > MPSAFE, aren't they? I haven't checked, but I'd assume so, given how new > they are. :) busdma has been around since 3.0. It probably needs a couple of hours of work to lock it down. > > I tried looking back to find the original message where you talked about > the performance boost, but I can't find it now. Refresh my memory; was > the speedup present on UP systems as well? I don't have any SMP boxes > here, so I'm curious as to what extent I'd be able to benchmark a > difference. I've seen performance gains as high as 20%. Presumably this is because you eliminate the two extra context switches that result from blocking on Giant. I doubt that you'll see much gain in a UP system, but I haven't benchmarked it. Once Peter commits his lazy context switching patches, this gain won't be as dramatic anymore. Scott 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?3E54219C.9030103>