From: Ingo Molnar <mingo@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: linux-arch@vger.kernel.org,
Linus Torvalds <torvalds@linux-foundation.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Nathan Chancellor <nathan@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Peter Zijlstra <peterz@infradead.org>,
Ard Biesheuvel <ardb@kernel.org>,
Josh Poimboeuf <jpoimboe@redhat.com>,
Jonathan Corbet <corbet@lwn.net>
Subject: [ANNOUNCE] "Fast Kernel Headers" Tree -v2
Date: Sat, 8 Jan 2022 17:26:45 +0100 [thread overview]
Message-ID: <Ydm7ReZWQPrbIugn@gmail.com> (raw)
I'm pleased to announce -v2 of the "Fast Kernel Headers" tree, which is a
comprehensive rework of the Linux kernel's header hierarchy & header
dependencies, with the dual goals of:
- speeding up the kernel build (both absolute and incremental build times)
- decoupling subsystem type & API definitions from each other
The fast-headers tree consists of over 25 sub-trees internally, spanning
over 2,300 commits, which can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/mingo/tip.git master
# HEAD: 391ce485ced0 headers/deps: Introduce the CONFIG_FAST_HEADERS=y config option
Changes in -v2:
- Port to v5.16-rc8
- Clang/LLVM support (with the help of Nathan Chancellor):
On my 'reference distro config' the build speedup under Clang is around +88%
in elapsed time and +77% in CPU time used:
#
# v5.16-rc8
#
Performance counter stats for 'make -j96 vmlinux LLVM=1' (3 runs):
18,490,451.51 msec cpu-clock # 54.740 CPUs utilized ( +- 0.04% )
337.788 +- 0.834 seconds time elapsed ( +- 0.25% )
#
# -fast-headers-v2
#
Performance counter stats for 'make -j96 vmlinux LLVM=1' (3 runs):
10,443,670.86 msec cpu-clock # 58.093 CPUs utilized ( +- 0.00% )
179.773 +- 0.829 seconds time elapsed ( +- 0.46% )
- Unify the duplicated 'struct task_struct_per_task' into a single definition,
which should address the definition ugliness reported by Greg Kroah-Hartman.
- Fix bugs reported by Nathan Chancellor:
- cacheline attribute definition bug
- build bug with GCC plugins
- fix off-tree build
- Header optimizations that speed up the RDMA (infiniband) subsystem build
by about +9% over -v1 and +41% over the vanilla kernel:
$ perf stat --repeat 3 -e instructions,cycles,cpu-clock --sync --pre "find . -name '*.o' | xargs rm" m-rdma >/dev/null
...
# v5.16-rc8:
643,570.38 msec cpu-clock # 52.253 CPUs utilized ( +- 0.06% )
12.316 +- 0.183 seconds time elapsed ( +- 1.49% )
# -fast-headers-v1:
446,243.49 msec cpu-clock # 47.106 CPUs utilized ( +- 0.06% )
9.4731 +- 0.0666 seconds time elapsed ( +- 0.70% )
# -fast-headers-v2:
400,650.32 msec cpu-clock # 45.888 CPUs utilized ( +- 0.02% )
8.7310 +- 0.0162 seconds time elapsed ( +- 0.19% )
- Another round of <linux/sched.h> header footprint reductions: the
header is now used in only ~36% of .c files, down from 99% in the
mainline kernel and 68% in -v1.
- Various bisectability improvements & other fixes & optimizations.
Thanks,
Ingo
next reply other threads:[~2022-01-08 16:26 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-08 16:26 Ingo Molnar [this message]
2022-01-10 22:03 ` [ANNOUNCE] "Fast Kernel Headers" Tree -v2 Arnd Bergmann
2022-01-11 16:23 ` Arnd Bergmann
2022-01-11 17:08 ` David Laight
2022-01-13 8:27 ` Ingo Molnar
2022-01-13 9:20 ` Arnd Bergmann
2022-01-19 12:31 ` Ingo Molnar
2022-01-19 17:20 ` Arnd Bergmann
2022-01-22 9:18 ` Ingo Molnar
2022-01-13 8:57 ` Ingo Molnar
2022-01-13 10:16 ` Arnd Bergmann
2022-03-15 10:35 ` [TREE] "Fast Kernel Headers" Tree -v3 Ingo Molnar
2022-03-22 7:59 ` Kari Argillander
2022-03-22 15:37 ` Randy Dunlap
2022-03-22 16:22 ` Kari Argillander
2022-03-22 19:03 ` Kari Argillander
2023-11-04 9:07 ` Lucas Tanure
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=Ydm7ReZWQPrbIugn@gmail.com \
--to=mingo@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=ardb@kernel.org \
--cc=corbet@lwn.net \
--cc=gregkh@linuxfoundation.org \
--cc=jpoimboe@redhat.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nathan@kernel.org \
--cc=peterz@infradead.org \
--cc=torvalds@linux-foundation.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 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.