Date: Sun, 30 Apr 2006 10:05:40 +0100 From: Chris <chrcoluk@gmail.com> To: "Kris Kennaway" <kris@obsecurity.org> Cc: Dmitry Pryanishnikov <dmitry@atlantis.dp.ua>, freebsd-stable@freebsd.org Subject: Re: RELENG_4 -> 5 -> 6: significant performance regression Message-ID: <3aaaa3a0604300205l64f19573u250a727e4c83f499@mail.gmail.com> In-Reply-To: <20060428182818.GA10410@xor.obsecurity.org> References: <20060427160536.M96305@atlantis.atlantis.dp.ua> <20060427181226.GA66431@xor.obsecurity.org> <20060428122448.K57436@atlantis.atlantis.dp.ua> <20060428182818.GA10410@xor.obsecurity.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 28/04/06, Kris Kennaway <kris@obsecurity.org> wrote:
> On Fri, Apr 28, 2006 at 03:31:17PM +0300, Dmitry Pryanishnikov wrote:
> >
> > Hello!
> >
> > On Thu, 27 Apr 2006, Kris Kennaway wrote:
> >
> > Thanks for your suggestions, they've made a difference (though not as big
> > as one could hope).
> >
> > >On Thu, Apr 27, 2006 at 05:08:11PM +0300, Dmitry Pryanishnikov wrote:
> > >
> > >>makeoptions CONF_CFLAGS=-fno-builtin
> > >
> > >Non-default option; this may conceivably affect performance.
> >
> > The reason why I've initially included this option is the following
> > comment (NOTES from RELENG_6):
> >
> > #
> > # CONF_CFLAGS gives some extra compiler flags that are added to ${CFLAGS}
> > # after most other flags. Here we use it to inhibit use of non-optimal
> > # gcc builtin functions (e.g., memcmp).
> > #
> >
> > I've read this: using "CONF_CFLAGS=-fno-builtin" inhibits use of non-optimal
> > gcc builtin functions, so this option may be useful for getting max.
> > performance. Are this comment and my interpretation still correct now?
>
> I don't know, it needs to be tested in your particular case.
>
> > >> %Sys %Intr %Idl
> > >>RELENG_4 + rl0 14 14 72
> > >>RELENG_4 + fxp0 14 10 76
> > >>RELENG_5 + rl0 40 30 30
> > >>RELENG_5 + fxp0 35 25 40
> > >>RELENG_6 + rl0 45 40 15
> > >>RELENG_6 + fxp0 45 35 20
>
> > %Sys %Intr %Idl "time md5 -t" wall clock time
> > RELENG_5 + rl0 33 23 44 1:41
> > RELENG_5 + fxp0 30 20 50 1:36
> >
> > RELENG_6 + rl0 34 24 42 1:43
> > RELENG_6 + fxp0 30 20 50 1:40
> >
> > So performance now is much better then before removal of
> >
> > makeoptions CONF_CFLAGS=-fno-builtin
> > options INVARIANTS
> > options INVARIANT_SUPPORT
> > options QUOTA
> >
> > (I'll try to find out which one of these takes which % of overhead when I
> > get free time), but still much worse then under RELENG_4, where this
> > particular (I'd say "quote common") usage pattern takes 24-28% of CPU time,
> > while under RELENG_5 / 6 it takes >= 50% ;(
>
> Thanks. Silly question: the data transfer rate is the same on both
> 4.x and 6.x, right? i.e. the data transfer itself takes the same
> time?
>
> The next step is for you to run some profiling tests to see
> where the kernel is spending time, e.g. with hwpmc.
>
> Also, when you are trying to quantify performance differences, you
> need to run many copies of the test (at least 10) under identical
> conditions to account for possible variations. The ministat tool
> (/usr/src/tools/tools/ministat) is good for performing statistically
> meaningful comparisons of data sets when you have them.
>
> Kris
Does 'makeoptions DEBUG=-g' add any kind of performance hit or
overhead as I noticed it wasnt default in 5.4 but is in 6.0.
Thanks
Chris
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3aaaa3a0604300205l64f19573u250a727e4c83f499>
