Conveners
Toolchains MC
- Jose E. Marchesi (GNU Project, Oracle Inc.)
Description
The goal of the Toolchains micro-conference is to hold discussions about toolchain related topics that are relevant to the Linux kernel. This covers both the GNU toolchain and the Clang/LLVM toolchain.
In the last years we have had either a micro-conference or a complete track to discuss about Toolchain topics during LPC, and along with LSFMMBPF they have proven to be a quite effective way to keep track and bring to a satisfactory conclusion of problems that often take a long time to resolve and that require a lot of interaction between the kernel and the toolchains communities.
This is particularly important for some topics that are of maintenance in nature and evolve over time. But also for particular projects that cover some particular need of the kernel hackers, or some desired functionality.
Some of the topics we are particularly interested in covering this year are:
- Kernel-oriented toolchain security features (KSPP).
- Coverage of new system calls in glibc.
- Support for compiling BPF programs with both GCC and Clang.
- Removal of compiler plugins from the kernel source tree.
- Toolchain support for facilitating online patching in ARM64.
- User stack unwinding in the kernel, based on the SFrame format.
- Profile-guided optimization of the kernel.
- Any other issue brought from the Kernel BoF at the GNU Tools Cauldron conference in September.
As is intended with micro-conference, the emphasis is to have productive discussions and the goal is to reach agreements and satisfactory solutions to fix particular issues. In particular, long talks are discouraged, and the presentation material should be reduced to the minimum necessary to present the problem to discuss. Notepads should then be ready to document the discussion and the reached agreements.
Key participants:
- Kees Cook (KSPP)
- Yonghong Song (BPF, LLVM BPF back-end)
- Steven Rostedt (SFrame kernel support, feedback from Cauldron)
- Paul McKenney (feedback from Cauldron)
- Jose E. Marchesi (GCC BPF back-end)
Another year of work is behind us, with lots of progress across GCC, Clang, and Rust to provide the Linux kernel with a variety of security features. Let's review and discuss where we are with parity between toolchains, approaches to solving open problems, and exploring new features.
Parity reached since last year:
- arbitrary stack protector guard location (Clang: [RISC-V][1],...
We're going to talk about the work we've done to enable distributed ThinLTO builds for the kernel. We'll cover why we're doing this, how we implemented it, and how it compares to in-process builds. We'll also discuss the changes we made to other components, like livepatch.
In 2014 I added "WIP: Kernel syscalls wrappers" [1] item to the upstream glibc consensus documentation.
Over the last 11 years the idea that we should add C library wrappers for all Linux syscalls has waxed and waned, but I would like to revisit the idea with the help of the kernel community.
I want to look at the...
The goal of this activity is to go through a list of specific problems and issues concerning the BPF support in GCC.
TBD
We have been using CONFIG_LTO_CLANG_THIN in our production kernel for a few years. While delivering non-trivial performance improvements, kernels with CONFIG_LTO_CLANG_THIN enabled also bring challenges to our work:
LTO causes confusion for tracing users. With LTO, the compiler is more likely to do selective inlining, i.e., inline a kernel function at some call sites, but not some others....