public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 2/7] kernel: fix out of tree module builds
Date: Tue, 23 Dec 2014 03:07:55 +0100	[thread overview]
Message-ID: <lysig715l0.fsf@ensc-virt.intern.sigma-chemnitz.de> (raw)
In-Reply-To: <1418991892.13316.12.camel@linuxfoundation.org> (Richard Purdie's message of "Fri, 19 Dec 2014 12:24:52 +0000")

Richard Purdie <richard.purdie@linuxfoundation.org> writes:

> In summary, basically, yes. The kernel source is huge and we were
> compressing/decompressing it in several places on the critical path.
> People were struggling to develop kernels using the system due to the
> overhead.

I do not see how the new system makes it easier to "develop kernels".  Due
to polluting sources with .config and related files, KBUILD_OUTPUT/VPATH
builds are not possible from this tree.

In my experience, it is also a pain to jump between the different
directories and tools like 'cscope' are not prepared of it.

And more importantly: the new system lowers end user experience
significantly because kernel messages will show absolute buildsystem
paths now; e.g.

| /srv/.oe/bld/e6ca2c38-c20d-f57f-7eca-ffc0aaa2f0bd/sysroots/kk-trizeps6/usr/src/kernel/drivers/usb/core/hub.c

vs.

| drivers/usb/core/hub.c

VPATH builds might be interesting for QA (e.g. building from same source
with different configuration) but should not be used for final builds.


> Whilst this approach does bypass some parts of the system, I do believe
> the benefits are worth it. We're talking about making the kernel build
> time about three times faster iirc,

I can not reproduce these numbers here; I get (after a '-c cleanall' and
'ccache -c'):

  | Task                         | time (old) | time (new) |
  |------------------------------+------------+------------|
  | do_bundle_initramfs          |   0.087052 |   0.034955 |
  | do_compile                   | 128.242407 | 133.723027 |
  | do_compile_kernelmodules     |  84.415655 |  83.249409 |
  | do_compile_prepare           |   2.885401 |   1.714159 |
  | do_configure                 |   6.202691 |   4.340526 |
  | do_deploy                    |  13.991785 |   14.07096 |
  | do_fetch                     |   0.210244 |   1.425304 |
  | do_generate_initramfs_source |   0.063915 |   0.041925 |
  | do_install                   |  16.190504 |    2.91906 |
  | do_package                   | 120.823374 |  16.422429 |
  | do_package_qa                |            |   2.557622 |
  | do_package_write_ipk         |   42.50694 |   29.57585 |
  | do_packagedata               |   1.612542 |   0.462001 |
  | do_patch                     |   0.186583 |   0.011232 |
  | do_populate_lic              |   0.795013 |   0.135186 |
  | do_populate_sysroot          |  10.142978 |   0.533519 |
  | do_rm_work                   |   1.762486 |   0.447187 |
  | do_rm_work_all               |   0.049144 |   0.030964 |
  | do_sizecheck                 |   0.054441 |   0.035806 |
  | do_strip                     |   0.049917 |   0.030841 |
  | do_uboot_mkimage             |   9.032543 |   12.83624 |
  | do_unpack                    |   6.695678 |   9.322173 |

  | old | 446.00129 |
  | new | 313.92038 |

Although the 'new' system is faster, this is gained mainly by the
'do_package' task which does not seem to be comparable.  The new
method will create only a very small 'kernel-dev' subpackage:

   1,1M    tmp/deploy/ipk/kk_trizeps6/kernel-dev_3.14...

vs.

    36M    tmp/deploy/ipk/kk_trizeps6/kernel-dev_3.14...

so the old task can be improved either by removing some files, or the
new task misses files.



Enrico


  reply	other threads:[~2014-12-23  2:08 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-10 10:34 [PATCH 0/7] kernel: consolidated pull for developer experience Bruce Ashfield
2014-12-10 10:34 ` [PATCH 1/7] kernel: Rearrange for 1.8 Bruce Ashfield
2014-12-10 12:45   ` Bruce Ashfield
2014-12-10 10:34 ` [PATCH 2/7] kernel: fix out of tree module builds Bruce Ashfield
2014-12-19 11:05   ` Enrico Scholz
2014-12-19 11:51     ` Richard Purdie
2014-12-19 12:11       ` Enrico Scholz
2014-12-19 12:24         ` Richard Purdie
2014-12-23  2:07           ` Enrico Scholz [this message]
2014-12-23  8:54             ` Richard Purdie
2014-12-23 10:51               ` Enrico Scholz
2014-12-23 15:36                 ` Bruce Ashfield
2014-12-23 15:28               ` Bruce Ashfield
2014-12-10 10:34 ` [PATCH 3/7] kerneldev: create kernel-devsrc packaging Bruce Ashfield
2014-12-10 10:34 ` [PATCH 4/7] images: introduce core-image-kernel-dev Bruce Ashfield
2014-12-10 10:34 ` [PATCH 5/7] lttng/perf: depend on virtual/kernel:do_install Bruce Ashfield
2014-12-10 10:34 ` [PATCH 6/7] kernel-yocto: fix non-git builds Bruce Ashfield
2014-12-10 10:34 ` [PATCH 7/7] kernel-yocto: make sure git tags get dereferenced properly in do_patch() Bruce Ashfield

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=lysig715l0.fsf@ensc-virt.intern.sigma-chemnitz.de \
    --to=enrico.scholz@sigma-chemnitz.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox