[PATCH] Mantaining turnstile aligned to 128 bytes in i386 CPUs

Nick Evans nevans at talkpoint.com
Tue Jan 16 21:24:05 UTC 2007


On Tue, 16 Jan 2007 16:07:43 -0500
John Baldwin <jhb at freebsd.org> wrote:

> On Tuesday 16 January 2007 15:42, Nick Evans wrote:
> > On Tue, 16 Jan 2007 17:51:03 +0100
> > "Attilio Rao" <attilio at freebsd.org> wrote:
> > 
> > > 2006/7/28, Attilio Rao <attilio at freebsd.org>:
> > > >
> > > > After some thinking, I think it's better using init/fini methods
> > > > (since they hide the sizeof(struct turnstile) with size parameter).
> > > >
> > > > Feedbacks and comments are welcome:
> > > > http://users.gufi.org/~rookie/works/patches/uma_sync_init.diff
> > > 
> > > [CC'ed all the interested people]
> > > 
> > > Even if a long time is passed I did some benchmarks based on ebizzy
> > > tool. This program claims to reproduce a real httpd server behaviour
> > > and is used into the Linux world for benchmarks, AFAIK.
> > > I think that results of the comparison on this patch is very
> > > interesting, and I think it worths a commit :)
> > > I think that results can be even better on a Xeon machine (I had no
> > > chance to reproduce this on some of these).
> > > (Results taken in consideration have been measured after some starts,
> > > in order to minimize caching differences).
> > > 
> > > The patch:
> > > http://users.gufi.org/~rookie/works/patches/ts-sq/ts-sq.diff
> > > 
> > > The benchmark results:
> > > http://users.gufi.org/~rookie/works/patches/ts-sq/ts-sq.benchmark
> > > 
> > > The kernel options file:
> > > http://users.gufi.org/~rookie/works/patches/ts-sq/CURRENT
> > > 
> > > For any information, comment, etc. please feel free to contact me.
> > > 
> > > Attilio
> > > 
> > > 
> > > -- 
> > > Peace can only be achieved by understanding - A. Einstein
> > > _______________________________________________
> > > freebsd-current at freebsd.org mailing list
> > > http://lists.freebsd.org/mailman/listinfo/freebsd-current
> > > To unsubscribe, send any mail to
> > > "freebsd-current-unsubscribe at freebsd.org"
> > 
> > Some preliminary results:
> > 
> > PREEMPTION: 4BSD, Quad P3-Xeon, 2GB ram
> > 
> > pre-patch
> > 
> > 1.  176.36 real       703.75 user         0.01 sys
> > 2.  176.73 real       704.34 user         0.03 sys
> > 3.  176.49 real       703.72 user         0.04 sys
> > 4.  175.81 real       701.36 user         0.03 sys
> > 5.  176.57 real       700.98 user         0.02 sys
> > 
> > post-patch
> > 
> > 1.  179.17 real       714.39 user         0.01 sys
> > 2.  178.33 real       711.50 user         0.04 sys
> > 3.  178.32 real       711.04 user         0.03 sys
> > 4.  177.34 real       707.51 user         0.03 sys
> > 5.  178.25 real       710.17 user         0.03 sys
> 
> What did you use to do your benchmark?  Also, have you tried adjusting 
> UMA_ALIGN_SYNC (maybe use 64 - 1)?
> 
> -- 
> John Baldwin


Tested with ebizzy, default runtime options, no WITNESS or INVARIANTS. I
haven't tried variations on UMA_ALIGN_SYNC, that's next on the list. I also
have a single core P4-Xeon and dual core Presler 915 that I'm going to test
this with as soon as they're done building world with the latest -CURRENT.
When ULE 2.0 shakes out a bit more I plan on testing with that too. I'll post
results on my other hardware sometime tonight.

Nick


More information about the freebsd-arch mailing list