[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