qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Daniele Buono <dbuono@linux.vnet.ibm.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
	"Daniel P . Berrangé" <berrange@redhat.com>,
	qemu-devel@nongnu.org
Subject: Re: [PATCH v3 0/2] gitlab-ci.yml: Add jobs to test CFI
Date: Thu, 04 Mar 2021 19:56:57 +0000	[thread overview]
Message-ID: <87r1kug0a7.fsf@linaro.org> (raw)
In-Reply-To: <20210304030948.9367-1-dbuono@linux.vnet.ibm.com>


Daniele Buono <dbuono@linux.vnet.ibm.com> writes:

> For a few months now QEMU has had options to enable compiler-based
> control-flow integrity if built with clang.
>
> While this feature has a low maintenance, It's probably still better to
> add tests to the CI environment to check that an update doesn't break it.
>
> The patchset allow gitlab testing of:
> * --enable-cfi: forward-edge cfi (function pointers)
> * --enable-safe-stack: backward-edge cfi (return pointers)
> As an added benefit, this also inherently tests LTO. 
>
> The first patch allows a custom selection for linker parallelism.
> Currently, make parallelism at build time is based on the number
> of cpus available.
> This doesn't work well with LTO at linking, because the linker has to
> load in memory all the intermediate object files for optimization.
> If the gitlab runner happens to run two linking processes at the same
> time, the job will fail with an out-of-memory error,
> The patch leverages the ability to maintain high parallelism at
> compile time, but limit the number of linkers executed in parallel.
>
> The second patch introduces the ci/cd jobs in the gitlab pipeline.
> To maintain a limited number of short jobs, Daniel suggested to only
> test targets where KVM is available. This restricted the jobs to
> x86_64, ppc64, aarch64 and s390x. To keep the jobs under 1 hour, I
> created three chains of build -> check -> acceptance jobs, divided by
> architecture vendor (Intel, ARM, IBM).
>
> For build, we have to select --enable-slirp=git, because CFI needs a
> statically linked version of slirp, with CFI information. More info on
> this can be found in a comment in .gitlab-ci.yml, or on a patch for
> mason currently in ML:
> https://www.mail-archive.com/qemu-devel@nongnu.org/msg787636.html
>
> Test runs of the full pipeline are here (cfi-ci-v3 branch):
> https://gitlab.com/dbuono/qemu/-/pipelines/264484574

Queued to testing/next, thanks.

-- 
Alex Bennée


      parent reply	other threads:[~2021-03-04 19:59 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-04  3:09 [PATCH v3 0/2] gitlab-ci.yml: Add jobs to test CFI Daniele Buono
2021-03-04  3:09 ` [PATCH v3 1/2] gitlab-ci.yml: Allow custom # of parallel linkers Daniele Buono
2021-03-04 10:38   ` Daniel P. Berrangé
2021-03-04  3:09 ` [PATCH v3 2/2] gitlab-ci.yml: Add jobs to test CFI flags Daniele Buono
2021-03-04 10:39   ` Daniel P. Berrangé
2021-03-04 11:21     ` Thomas Huth
2021-03-04 11:58       ` Daniel P. Berrangé
2021-03-04 19:56 ` Alex Bennée [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=87r1kug0a7.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=dbuono@linux.vnet.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.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;
as well as URLs for NNTP newsgroup(s).