Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 1 Jun 2012 20:50:24 +0200
From:      Ulrich =?utf-8?B?U3DDtnJsZWlu?= <uqs@FreeBSD.org>
To:        Peter Jeremy <peter@rulingia.com>
Cc:        freebsd-current@FreeBSD.org, Dmitry Marakasov <amdmi3@amdmi3.ru>
Subject:   Re: OptionalObsoleteFiles.inc completeness
Message-ID:  <20120601185024.GP10094@acme.spoerlein.net>
In-Reply-To: <20120531212042.GA43155@server.rulingia.com>
References:  <20120527140541.GL2987@hades.panopticon> <20120528094427.GE2675@aspire.rulingia.com> <20120528195542.GB85856@hades.panopticon> <20120528200403.GB15356@server.rulingia.com> <20120528221825.GB38860@hades.panopticon> <20120530032703.GA99357@server.rulingia.com> <20120531212042.GA43155@server.rulingia.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--Kj7319i9nmIyA2yE
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Fri, 2012-06-01 at 07:20:42 +1000, Peter Jeremy wrote:
> On 2012-May-30 13:27:03 +1000, Peter Jeremy <peter@rulingia.com> wrote:
> >On 2012-May-29 02:18:25 +0400, Dmitry Marakasov <amdmi3@amdmi3.ru> wrote:
> >>Then you should try to profile it - my script basically runs
> >>delete-old delete-old-libs for every knob (131 of them), and it
> >>hadn't taken more than 4 seconds even once.
> >
> >I've done some investigating and the problem is that "xargs -n1"
> >fork()/exec()s /bin/echo on each file (and there are 5538 files for
> >me).  Changing this to "tr ' ' '\n'" reduces "make delete-old" runtime
> >to 1.75s - which is much nicer.  I've checked a variety of other
> >systems running 8.x & 9.x and the 97s seems to be anomalously long so
> >I'll do some more investigating.
>=20
> I've tracked the problem down to excessive VM faults caused by
> jemalloc.  Whilst executing /bin/echo, jemalloc mmap()s two 4MiB
> chunks of memory.  Unless you build with MALLOC_PRODUCTION (which I
> hadn't), it then proceeds to verify that both blocks are zero-filled.
> This causes 2048 (unnecessary) page faults (out of a total of 2133).
> When I rebuilt jemalloc with MALLOC_PRODUCTION, this dropped to 87
> page faults (cf 76 an 8.x and 62 on 9.x) and the elapsed time for
> "make delete-old" dropped to slightly more than 8.x & 9.x.
>=20
> "xargs -n1" is probably a worst case scenario for jemalloc but this
> probably similarly affects other short-lived processes (and the shell
> scripts that invoke them).  It's a pity that this particular test is a
> compile-time option.
>=20
> I still think that saving 5500 fork()/exec() pairs is a good reason
> to switch from "xargs -n1" to "tr ' ' '\n'".

Why is xargs even calling /bin/echo when "utility" is not specified.
Shouldn't it just print a certain number of arguments (one in this
case)?

Uli

--Kj7319i9nmIyA2yE
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (FreeBSD)

iQEcBAEBAgAGBQJPyQ7wAAoJEKOmmGRKr4LOz5wIAIkAYiFbuk7UiOqbQnSGKX+J
JVHFGDTSaZN5PLBA7LrlhKQ1ZjFKKNkp6UUQQaHb1juV21DG3oVFPidgt6C2r6x6
jPiOeSj5wE9Gxtvasgfz8Cp2O0L3d3pREitOBmtPpnhE+zPD1PbrZIqTkEKieRKJ
a+cml7CV3bbyK6NrG6lITNnLljJebzH/g6lx57b4zIbxv7nLjObF2EZG9GC6fjGw
IxxJJ3idHwl46tdhJ4UUncwUngsTBBttZ111fqbL0DizGF3nXhPP7wvEMA24p5lm
X1kdUaI39gshImf7NWAinndprClWWIFDdzZdILcJN44IQk4osVwC0K3R5iOrdYs=
=tP1N
-----END PGP SIGNATURE-----

--Kj7319i9nmIyA2yE--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120601185024.GP10094>