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

John Baldwin jhb at freebsd.org
Tue Jan 16 21:10:23 UTC 2007


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


More information about the freebsd-arch mailing list