qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/8] gitlab: speed up msys windows jobs with GCC
@ 2023-08-01 13:03 Daniel P. Berrangé
  2023-08-01 13:03 ` [PATCH 1/8] gitlab: remove duplication between msys jobs Daniel P. Berrangé
                   ` (9 more replies)
  0 siblings, 10 replies; 24+ messages in thread
From: Daniel P. Berrangé @ 2023-08-01 13:03 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Beraldo Leal, Alex Bennée,
	Wainer dos Santos Moschetta, Yonggang Luo, Paolo Bonzini,
	Thomas Huth, Daniel P. Berrangé

This is an alternative and/or complementary to Thomas' proposal
to use CLang with msys:

  https://lists.gnu.org/archive/html/qemu-devel/2023-07/msg05402.html

First of all, the current msys installer we're using is over 12
months out of date. Thus after running the install, pacman then
replaces most of what we've just installed with new downloaded
content. Using the most update installer cuts 3+1/2 minutes off
the msys install time - 7 minutes becomes 3+1/2.

Secondly, QEMU defaults to compiling with -O2 and this is more
computationally expensive for GCC. Switching to -O0 drops the
build time from 60 minutes down to 45 minutes.

Thirdly, including debug symbols also has an overhead, and turning
that off reduces time still further down to 38 minutes.

IOW, between all three changes, we can cut approx 25-26 minutes
off the job execution time, bringing it nicely within the job
timeout.

The actually phase of installing the mingw deps still accounts
for about 10 minutes and has not been optimized.

Possibly the same trick of -O0 and skipping -g would also help
the clang alternative Thomas' proposed. If so, that could be
enough to let us enable more features / targets during the
msys build.

Daniel P. Berrangé (8):
  gitlab: remove duplication between msys jobs
  gitlab: print timestamps during windows msys jobs
  gitlab: always use updated msys installer
  gitlab: drop $CI_PROJECT_DIR from cache path
  gitlab: always populate cache for windows msys jobs
  configure: support passthrough of -Dxxx args to meson
  gitlab: disable optimization and debug symbols in msys build
  gitlab: disable FF_SCRIPT_SECTIONS on msys jobs

 .gitlab-ci.d/windows.yml | 174 +++++++++++++++++++--------------------
 configure                |   5 ++
 2 files changed, 92 insertions(+), 87 deletions(-)

-- 
2.41.0



^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2023-08-03 11:17 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-01 13:03 [PATCH 0/8] gitlab: speed up msys windows jobs with GCC Daniel P. Berrangé
2023-08-01 13:03 ` [PATCH 1/8] gitlab: remove duplication between msys jobs Daniel P. Berrangé
2023-08-01 18:36   ` Thomas Huth
2023-08-01 13:03 ` [PATCH 2/8] gitlab: print timestamps during windows " Daniel P. Berrangé
2023-08-01 18:38   ` Thomas Huth
2023-08-01 13:03 ` [PATCH 3/8] gitlab: always use updated msys installer Daniel P. Berrangé
2023-08-02 15:49   ` Thomas Huth
2023-08-03 11:16     ` Daniel P. Berrangé
2023-08-01 13:03 ` [PATCH 4/8] gitlab: drop $CI_PROJECT_DIR from cache path Daniel P. Berrangé
2023-08-02 15:50   ` Thomas Huth
2023-08-01 13:04 ` [PATCH 5/8] gitlab: always populate cache for windows msys jobs Daniel P. Berrangé
2023-08-02 15:50   ` Thomas Huth
2023-08-01 13:04 ` [PATCH 6/8] configure: support passthrough of -Dxxx args to meson Daniel P. Berrangé
2023-08-01 18:42   ` Thomas Huth
2023-08-01 19:07     ` Daniel P. Berrangé
2023-08-01 13:04 ` [PATCH 7/8] gitlab: disable optimization and debug symbols in msys build Daniel P. Berrangé
2023-08-01 18:44   ` Thomas Huth
2023-08-01 19:07     ` Daniel P. Berrangé
2023-08-01 13:04 ` [PATCH 8/8] gitlab: disable FF_SCRIPT_SECTIONS on msys jobs Daniel P. Berrangé
2023-08-01 18:44   ` Thomas Huth
2023-08-01 13:53 ` [PATCH 0/8] gitlab: speed up msys windows jobs with GCC Markus Armbruster
2023-08-01 14:35   ` Daniel P. Berrangé
2023-08-01 18:21     ` Thomas Huth
2023-08-01 18:46 ` Thomas Huth

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).