From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 2/2] core/instrumentation: shave minutes off the build time
Date: Sun, 18 Mar 2018 17:15:30 +0100 [thread overview]
Message-ID: <20180318161530.GA2478@scaer> (raw)
In-Reply-To: <87muz5fp2n.fsf@dell.be.48ers.dk>
Peter, All,
On 2018-03-18 15:14 +0100, Peter Korsgaard spake thusly:
> >>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:
> > As part of the build, we run some instrumentation hooks to gather
> > statistics about the usage of the target/, staging/ and host/
> > directories, so that we can generate reports for the user, that
> > shows:
> > - for each file, what package installed it,
> > - for each package,the size that it installed.
[--SNIP--]
> > So, we switch to using mtime, because in the end that's still good-enough
> > for our use-case: generating some graphs. It is not mission-critical, and
> > if a graph is slightly off, that's not biggy. It can anyway be attributed
> > to a broken package's buildsystem, which should get fixed.
> > - /foo/bar/ exists
> > - a package installs /foo/bar/buz
> > - mtime of /foo/bar/ is changed to account for the nex file in it.
>
> Playing around with this, I noticed two other issues:
>
> - It doesn't work for packages using rsync to install,
> E.G. skeleton-init-common as rsync also sets the mtime to match the
> source files
We could maybe tell rsycn not to do that, then?
> - It breaks for <pkg>-reinstall
Well, we can't guarantee anything except with a clean build from scratch
anyway.
> I don't think either of those are really big issues compared to the huge
> slowdown, but it is worth noticing.
Well, the -reinstall was already not working correctly, because the list
pf files before/after would be alsmost the same, and the md5-diff would
miss all the laready-installed files for the package.
The rsync issue is new, but we can "fix" it in a later patch, then, for
those packages like the skeletons, by using the --no-times option for
example.
However, if a third-party package internally uses rsync as its install
method, we're screwed. But who would be insane enough to do that? ;-]
Alternatively, we could use ctime instead of mtime, maybe? Or check
both?
> > +define step_pkg_size_inner
> > + cd $(2); \
> > + find . \( -type f -o -type L \) \
> > + -newer $($(PKG)_DIR)/.stamp_built \
> > + -exec printf '$(1),%s\n' {} + \
> > + >> $(BUILD_DIR)/packages-file-list$(3).txt
>
> What find version are you using? My fileutils find (and the busybox
> applet) use 'l' for symlinks, so I've changed it to that.
Doh, the s/L/l/ is still uncomitted here. Dang...
> Committed with that fixed (and a few tweaks to the commit message),
> thanks.
Thanks! :-)
Regards,
Yann E. MORIN.
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2018-03-18 16:15 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-15 20:35 [Buildroot] [PATCH 0/2] core/instrumentation: optimisations Yann E. MORIN
2018-03-15 20:35 ` [Buildroot] [PATCH 1/2] core/intrumetnation: don't spawn to get seconds-since-EPOCH Yann E. MORIN
2018-03-17 11:54 ` Cam Hutchison
2018-03-18 16:16 ` Yann E. MORIN
2018-03-19 16:15 ` Trent Piepho
2018-03-15 20:35 ` [Buildroot] [PATCH 2/2] core/instrumentation: shave minutes off the build time Yann E. MORIN
2018-03-18 14:14 ` Peter Korsgaard
2018-03-18 16:15 ` Yann E. MORIN [this message]
2018-03-18 16:33 ` Peter Korsgaard
2018-03-22 16:41 ` Thomas De Schampheleire
2018-03-22 16:50 ` Thomas Petazzoni
2018-03-22 17:11 ` Thomas De Schampheleire
2018-03-22 17:25 ` Trent Piepho
2018-03-22 22:39 ` Peter Korsgaard
2018-03-23 22:39 ` Arnout Vandecappelle
2018-03-23 23:03 ` Thomas Petazzoni
2018-03-19 16:30 ` Trent Piepho
2018-03-19 16:50 ` Thomas Petazzoni
2018-03-19 20:04 ` Peter Korsgaard
2018-03-20 21:47 ` Trent Piepho
2018-03-19 16:53 ` Peter Korsgaard
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=20180318161530.GA2478@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/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.