qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Thomas Huth <thuth@redhat.com>
Cc: "Alex Bennée" <alex.bennee@linaro.org>,
	"Laszlo Ersek" <lersek@redhat.com>,
	qemu-devel@nongnu.org,
	"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: Re: [PATCH RFC 0/3] gitlab: build containers to use in build jobs
Date: Thu, 25 Jun 2020 12:39:51 +0100	[thread overview]
Message-ID: <20200625113951.GC1014704@redhat.com> (raw)
In-Reply-To: <def1de86-3183-56c3-81a0-b56d7550b953@redhat.com>

On Thu, Jun 25, 2020 at 01:33:42PM +0200, Thomas Huth wrote:
> On 25/06/2020 13.29, Daniel P. Berrangé wrote:
> > On Thu, Jun 25, 2020 at 12:26:53PM +0100, Daniel P. Berrangé wrote:
> > > On Thu, Jun 25, 2020 at 01:15:52PM +0200, Thomas Huth wrote:
> > > > On 22/06/2020 17.33, Daniel P. Berrangé wrote:
> > > > > The current gitlab CI jobs are quite inefficient because they
> > > > > use the generic distro images and then apt-get/dnf install
> > > > > extra packages every time.
> > > > > 
> > > > > The other downside is that the container environment used is
> > > > > only defined in thte .gitlab-ci.yml file, so it tedious to
> > > > > reproduce locally.
> > > > > 
> > > > > We already have containers defined in tests/docker for use by
> > > > > developers building locally. We can use these for CI systems
> > > > > too if we just had a way to build them....
> > > > > 
> > > > > ...GitLab CI offers such a way. We can use docker-in-docker
> > > > > to build the images at the start of the CI cycle, and use
> > > > > the built images in later jobs.
> > > > > 
> > > > > These later jobs are now faster because they're not having
> > > > > to install any software.
> > > > 
> > > > Did you see any speed-up? I had a look at some pipelines, and it seems to me
> > > > that they rather got slower now? For example, this is the system1 pipeline
> > > > before your change:
> > > > 
> > > >   https://gitlab.com/huth/qemu/-/jobs/610924897
> > > > 
> > > > and after your change:
> > > > 
> > > >   https://gitlab.com/huth/qemu/-/jobs/611069374
> > > > 
> > > > Duration went up from 35 minutes to 42 minutes.
> > > > 
> > > > Seems also to happen in your builds, before the change:
> > > > 
> > > >   https://gitlab.com/berrange/qemu/-/jobs/582995084
> > > > 
> > > > and after the change:
> > > > 
> > > >   https://gitlab.com/berrange/qemu/-/jobs/606175927
> > > > 
> > > > ... went from 36 minutes up to 42 minutes.
> > > > 
> > > > Could be a coincidence due to the load on the shared runners, but it looks
> > > > at least a little bit suspicious...
> > > 
> > > I think the difference is because we're building more features now. The
> > > dockerfiles have provided more build pre-requisites that the old gitlab
> > > recipe did.
> > > 
> > > If you compare the configure summary, I see the new build now covers
> > > SDL, curses, curl, pulseaudio, virtiofs, SASL, libjpeg, xen, docs
> > > and a few more.  So we've saved time by not intsallling many packages
> > > each time, but consumed a greater amount of time by compiling more
> > > features.
> > 
> > Oh a missed a lot more actually - there's also spice, opengl, libiscsi,
> > libnfs, libusb, seccomp, libssh, lzo, snappy, bzip, zstd, numa and udev
> > too.
> 
> Ok, that's fair, I think it's ok to spend some additional minutes for the
> extended test coverage here.

Unlike Travis which limits to 5 concurrent jobs,  GitLab doesn't seem to
have a fixed concurrency limit (at least I've not managed to hit one yet).
So if we want faster overall build time, we have alot more scope for
splitting jobs in half and making use of much better parallelism in CI
to get this to complete sooner.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



      reply	other threads:[~2020-06-25 11:41 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-22 15:33 [PATCH RFC 0/3] gitlab: build containers to use in build jobs Daniel P. Berrangé
2020-06-22 15:33 ` [PATCH RFC 1/3] gitlab: introduce explicit "container" and "build" stages Daniel P. Berrangé
2020-06-22 15:59   ` Laszlo Ersek
2020-06-25  8:54   ` Thomas Huth
2020-06-25  8:58     ` Philippe Mathieu-Daudé
2020-06-22 15:33 ` [PATCH RFC 2/3] gitlab: build all container images during CI Daniel P. Berrangé
2020-06-22 15:38   ` Philippe Mathieu-Daudé
2020-06-22 15:46     ` Daniel P. Berrangé
2020-06-22 16:13       ` Philippe Mathieu-Daudé
2020-06-22 18:26   ` Alex Bennée
2020-06-23  8:47     ` Daniel P. Berrangé
2020-06-23  9:35       ` Alex Bennée
2020-06-25  9:35   ` Thomas Huth
2020-06-25  9:50     ` Daniel P. Berrangé
2020-06-25 15:57       ` Laszlo Ersek
2020-06-25 10:07   ` Daniel P. Berrangé
2020-06-25 11:14     ` Alex Bennée
2020-06-25 10:14   ` Thomas Huth
2020-06-25 10:24     ` Daniel P. Berrangé
2020-06-25 13:25       ` Thomas Huth
2020-06-25 14:29         ` Daniel P. Berrangé
2020-06-22 15:33 ` [PATCH RFC 3/3] gitlab: convert jobs to use custom built containers Daniel P. Berrangé
2020-06-25  9:59   ` Thomas Huth
2020-06-25 10:31 ` [PATCH RFC 0/3] gitlab: build containers to use in build jobs Alex Bennée
2020-06-25 11:15 ` Thomas Huth
2020-06-25 11:26   ` Daniel P. Berrangé
2020-06-25 11:29     ` Daniel P. Berrangé
2020-06-25 11:33       ` Thomas Huth
2020-06-25 11:39         ` Daniel P. Berrangé [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=20200625113951.GC1014704@redhat.com \
    --to=berrange@redhat.com \
    --cc=alex.bennee@linaro.org \
    --cc=lersek@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@redhat.com \
    --cc=wainersm@redhat.com \
    /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;
as well as URLs for NNTP newsgroup(s).