24–28 Aug 2020
US/Pacific timezone

Session

LLVM MC

27 Aug 2020, 07:00

Description

Join us to discuss topics related to LLVM and building the Linux kernel.

Significant progress was made in 2019 and 2020 as Clang gained the ability to compile multiple different architectures supported by the kernel. Many LLVM utilities also now work for assembling and linking the kernel as well. Multiple continuous integration services covering the kernel are also building with Clang. Android kernels and ChromeOS kernels are now built with Clang; OpenMandriva and Google's production kernel are testing Clang built kernels.

Presentation materials

There are no materials yet.

  1. Behan Webster (Converse in Code Inc.), Nick Desaulniers (Google)
    27/08/2020, 07:00
  2. Will Deacon, Peter Zijlstra (Intel OTC), Paul McKenney (Facebook)
    27/08/2020, 07:05

    For better or worse, the Linux kernel relies heavily on hardware ordering guarantees concerning dependencies between memory access instructions as a way to provide efficient, portable implementations of concurrent algorithms. In spite of the lack of C language support, preserving source-level dependencies through to the generated CPU instructions is achieved through a delicate balance of...

    Go to contribution page
  3. John Baublitz, Nick Desaulniers (Google), Alex Gaynor, Geoffrey Thomas, Josh Triplett, Miguel Ojeda
    27/08/2020, 07:35

    What would it take to have in-tree support for writing kernel code in Rust? What should Kbuild integration look like? What APIs should be the initial priorities to expose in Rust? Let's figure out if any other other questions remain (e.g., can we safely link against GCC-built kernels, and do we need to) about how to get in-tree support for Rust.

    Rust is a systems programming language that...

    Go to contribution page
  4. Sami Tolvanen (Google), Bill Wendling (Google), Nick Desaulniers (Google)
    27/08/2020, 08:05

    Newer compiler optimization techniques stand to improve the runtime performance of Linux kernels. These techniques analyze more of a program (Link Time Optimization aka "LTO") or make use of profiling information to improve code layout (Profile Guided Optimization "PGO" and Automatic Feedback Directed Optimization "AutoFDO"). Now that Google is shipping all three in various kernel...

    Go to contribution page
  5. Nathan Huckleberry, Nathan Chancellor
    27/08/2020, 08:50

    In this talk we will discuss clang-built kernel compile times, current
    work to improve compiler performance and recommendations to reduce
    build times regardless of toolchain.

    We will present our findings alongside several metrics of compiler
    performance, including:

    • Comparative timing breakdowns between toolchains
    • Linux perf profiling on clang builds of the kernel
    • Perfetto...
    Go to contribution page
  6. Nathan Huckleberry, Miguel Ojeda
    27/08/2020, 09:10

    Clang is a production C compiler (part of LLVM) that provides APIs for
    C code parsing, formatting, custom compiler warnings, static analysis, etc. This framework has spawned widely used tools like clang-format and clang-tidy. These tools can be easily tailored for particular codebases like the Linux kernel.

    This talk shows how to run clang-format, clang-tidy (including writing custom...

    Go to contribution page
  7. Bill Wendling (Google)
    27/08/2020, 09:30

    "Asm goto with outputs" is a clang extension of the GNU "asm goto" feature. As the name implies, it allows asm goto to have outputs on the default branch (outputs on indirect branches aren't supported). In this talk, we discuss the benefits of this feature, its implementation and design limits, and how the clang and gcc communities can work together on future GNU C extensions.

    Go to contribution page
  8. Prof. Mathieu Acher (University of Rennes 1)
    27/08/2020, 10:00

    The Linux kernel offers more than ten thousands configuration options that can be combined to build an almost infinite number of kernel variants. Developers and contributors spend significant effort and computational resources to continuously track and hopefully fix configurations that lead to build failures. In this talk, we report on our endeavor to develop an infrastructure, called TuxML,...

    Go to contribution page
  9. Dan Rue, Antonio Terceiro (Linaro)
    27/08/2020, 10:15

    Reproducing build errors reported to a mailing list is a pain. How much time do
    we collectively spending asking "What kernel config did you use?", "What
    compiler?" and "What architecture?"?

    What if we could version and distribute build environments similarly to how we
    version Linux source code?

    TuxMake is a tool that provides portable and repeatable Linux kernel builds
    across a...

    Go to contribution page
  10. Nick Desaulniers (Google)
    27/08/2020, 10:30

    Multiple CI efforts to provide coverage of the Linux kernel are now building and providing results of builds with Clang (KernelCI, 0day bot, Linaro toolchain team and tuxbuild team, Clang Built Linux). Let's all meet to discuss what's working, what can be improved, the current status of builds of various architectures, and what the future direction of testing the various LLVM utilities might...

    Go to contribution page
Building timetable...

Diamond Sponsor

Platinum Sponsors



Gold Sponsors


Silver Sponsors


Catchboxes Sponsor

Conference Services Provided By