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

Attilio Rao attilio at freebsd.org
Tue Jan 16 19:02:48 UTC 2007


2007/1/16, Nick Evans <nevans at talkpoint.com>:
> On Tue, 16 Jan 2007 18:51:30 +0100
> "Attilio Rao" <attilio at freebsd.org> wrote:
>
> > 2007/1/16, Nick Evans <nevans at talkpoint.com>:
> > > 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"
> > >
> > > Attilio,
> > >
> > > What class of Xeon do you need this tested on, P3 or the newer P4+ stuff?
> > > I have a few systems here I can test this on including a quad P3-Xeon box
> > > that I've been testing Jeff's ULE 2.0 on. Do you have specific extra test
> > > points or are the before and after for the (non)preemption cases
> > > sufficient? I can also give you access to the systems if that is easier.
> >
> > Hi Nick,
> > thanks a lot for responsivness and help.
> > I think that P3 Xeon alredy should show some speedup, in particular I
> > would see some tests on the P3-Xeon quad.
> > It would be enough reproduce the test I did (using the same options
> > file and starting ebizzy for 1-2 times before the results gathering).
> > I hope you are suitable for doing this benchmarks alone (FreeBSD +
> > university  + job don't leave me too much time ATM :(( ).
> >
> > Thanks a lot for your efforts,
> > Attilio
> >
> >
> > --
> > Peace can only be achieved by understanding - A. Einstein
>
>
> Yea, we should be able to handle benchmarking this if you can help me
> through the first hurdle. Do you have a version that compiles cleanly on
> -CURRENT? The version I dug up off lkml via google complains:
>
> root at current[13:10]# make
> gcc -Wall -lpthread -o ebizzy ebizzy.c
> In file included from ebizzy.c:43:
> /usr/include/malloc.h:3:2: #error "<malloc.h> has been replaced by <stdlib.h>"
> ebizzy.c: In function `read_options':
> ebizzy.c:212: warning: implicit declaration of function `mallopt'
> ebizzy.c:212: error: `M_MMAP_MAX' undeclared (first use in this function)
> ebizzy.c:212: error: (Each undeclared identifier is reported only once
> ebizzy.c:212: error: for each function it appears in.)
> ebizzy.c: In function `alloc_mem':
> ebizzy.c:224: error: `MAP_ANONYMOUS' undeclared (first use in this function)
> *** Error code 1
>
> Stop in /root/ebizzy.
>
>
> I didn't see an updated version listed in our archives anywhere.

Since ebizzy doesn't compile natively on FreeBSD try this patch (it
disables the -m option, but it doesn't matter currently):
http://users.gufi.org/~rookie/works/patches/ts-sq/ebizzy.diff

Attilio


-- 
Peace can only be achieved by understanding - A. Einstein


More information about the freebsd-current mailing list