From: Michael Halstead <michael@yoctoproject.org>
To: Richard Purdie <richard.purdie@linuxfoundation.org>,
openembedded-core <openembedded-core@lists.openembedded.org>
Cc: "Hart, Darren" <darren.hart@intel.com>
Subject: Re: Fetch/Unpack performance dependent on git version
Date: Mon, 21 Apr 2014 13:52:49 -0700 [thread overview]
Message-ID: <53558521.1050105@yoctoproject.org> (raw)
In-Reply-To: <1397947224.16672.15.camel@ted>
[-- Attachment #1: Type: text/plain, Size: 2120 bytes --]
On 04/19/2014 03:40 PM, Richard Purdie wrote:
> I thought it might be worth highlighting to people that the performance
> of the git fetcher *and* the unpack process is highly dependant on the
> version of git.
>
> Firstly, all versions of git 1.6+ appear to default to injecting an
> fsync() after fetching objects. fsync() usage significantly hurts our
> builds. It is also a bit pointless in our usecase, we can however
> disable it with a simple tweak to the fetcher:
>
> - ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git"
> + ud.basecmd = data.getVar("FETCHCMD_git", d, True) or "git -c core.fsyncobjectfiles=0"
>
> Secondly, for older versions of git, git clone is running repository
> coverage checks even for local cloning. E.g.:
>
> git version 1.8.3.2 on my system:
>
> $ bitbake linux-yocto -c fetch
> $ time bitbake linux-yocto -c unpack
> 51.33user 1.93system 1:09.27elapsed 76%CPU (0avgtext+0avgdata 779380maxresident)k
>
> after updating to git 1.9.2:
>
> $ bitbake linux-yocto -c fetch
> $ time bitbake linux-yocto -c unpack
> 4.28user 0.63system 0:04.36elapsed 112%CPU (0avgtext+0avgdata 260692maxresident)k
>
> so 16 times faster!
>
> The commit in question for anyone interested:
>
> https://github.com/git/git/commit/125a05fd0b45416558923b753f6418c24208d443
>
> Michael/Beth: Can we please upgrade the autobuilder to a daisy release
> buildtools tarball which has git 1.9.x in it? This should massively
> speed up certain parts of the autobuilder.
The new buildtools are installed at /opt/poky/1.6 and I've updated
~pokybuild/.bashrc to source them. Restarting all the buildslaves should
put them to use. I'll restart all of them that aren't building
currently. opensuse131-a.yp, on the current nightly, is the only one
occupied at the moment.
Michael Halstead
Yocto Project / System Administrator
>
> Stefan: Could you see which version of git is on the performance
> benchmark machine? A run with the daisy build tools tarball would be
> extremely interesting if its before 1.9.
>
> Cheers,
>
> Richard
>
>
>
[-- Attachment #2: S/MIME Cryptographic Signature --]
[-- Type: application/pkcs7-signature, Size: 4516 bytes --]
prev parent reply other threads:[~2014-04-21 20:52 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-19 22:40 Fetch/Unpack performance dependent on git version Richard Purdie
2014-04-21 20:52 ` Michael Halstead [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53558521.1050105@yoctoproject.org \
--to=michael@yoctoproject.org \
--cc=darren.hart@intel.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.