Occasionally, I will forget to link something from the mailing list in this post. To see my full mailing list activity (patches, reviews, and reports), you can view it on lore.kernel.org.
Linux kernel patches
-
Build errors: These are patches to fix various build errors that I found through testing different configurations with LLVM or were exposed by our continuous integration setup. The kernel needs to build in order to be run :)
-
Feature work: These patches focus on getting things that don’t currently work or happen but should. In this case, this series enables linking the PowerPC vDSO with ld.lld, which is necessary to avoid cryptic build failures when using Link Time Optimization (LTO), which is currently a work in progress.
-
Miscellaneous fixes: These are fixes that don’t fit into a particular category but are important to ClangBuiltLinux. In this case, this patch fixes a Control Flow Integrity (CFI) violation in the i915 driver, which I found while testing kCFI, a new CFI scheme specifically for the Linux kernel being developed in Clang/LLVM.
drm/i915: Fix CFI violation with show_dynamic_id()
(v1
)
-
Stable backports: These are patches It is important to make sure that the stable trees are as free from issues as possible, as those are the trees that devices and users use; for example, Android and Chrome OS regularly merge from stable, so if there is a problem that will impact those trees that we fixed in mainline, it should be backported.
-
Warning fixes: These are patches to fix various warnings that appear with LLVM. I used to go into detail about the different warnings and what they mean, but the important takeaway for this section is that the kernel should build warning free, as all developers should be using
CONFIG_WERROR
, which will turn these all into failures. Maybe these should be in the build failures section…
Patch review and input
For the next sections, I link directly to my first response in the thread when possible but there are times where the link is to the main post. My responses can be seen inline by going to the bottom of the thread and clicking on my name.
Reviewing patches that are submitted is incredibly important, as it helps ensure good code quality due to catching mistakes before the patches get accepted and it can help get patches accepted faster, as some maintainers will blindly pick up patches that have been reviewed by someone that they trust.
Re: [PATCH v1 00/11] PCI/PM: Rework powering up PCI devices
Re: uninitialized variables bugs
Re: [PATCH v3 00/15] kbuild: yet another series of cleanups (modpost, LTO, MODULE_REL_CRCS)
Re: [RESEND PATCH v1] x86/build: add -fno-builtin flag to prevent shadowing
Re: [PATCH kernel] powerpc/llvm/lto: Allow LLVM LTO builds
Re: [PATCH v4 00/14] kbuild: yet another series of cleanups (modpost, LTO, MODULE_REL_CRCS, export.h)
Re: [GIT PULL] virtio: last minute fixup
Initial statically linked clang image
Re: [PATCH 4/8] s390/entry: workaround llvm's IAS limitations
Re: [PATCH v5 00/12] kbuild: yet another series of cleanups (modpost, LTO, MODULE_REL_CRCS, export.h)
Re: [PATCH 0/8] s390: allow to build with llvm's integrated assembler
Re: [PATCH 4.19] MIPS: fix allmodconfig build with latest mkimage
Re: [PATCH] misc: rtsx: Set setting_reg2 before use.
Re: [RFC PATCH v2 00/21] KCFI support
Re: [PATCH] can: mcp251xfd: silence clang's -Wunaligned-access warning
Re: [PATCH 1/1] um: fix error return code in winch_tramp()
-mharden-sls=all for x86
add github action workflow
Epoch2
llvm-project: add epoch3
Re: [PATCH] drm/ssd130x: Only define a SPI device ID table when built as a module
Re: [PATCH] ARM: entry: add .ltorg directive to keep literals in range
Issue triage and reporting
The unfortunate thing about working at the intersection of two projects is we will often find bugs that are not strictly related to the project, which require some triage and reporting back to the original author of the breakage so that they can be fixed and not impact our own testing. Some of these bugs fall into that category while others are issues strictly related to this project.
Re: arch/x86/entry/entry: RFC on recent kernels building error with llvm 11.0.2 internal assembler
Re: [PATCH] interconnect: Restore sync state by ignoring ipa-virt in provider count
Re: [willy-pagecache:for-next 60/69] fs/ntfs/aops.c:378:12: warning: stack frame size (2216) exceeds limit (1024) in 'ntfs_read_folio'
[BOLT] Minimum hardware requirements?
Re: [PATCH 00/21] Folio patches for 5.19
Re: [TCWG CI] Regression caused by llvm: [GVN] Encode GEPs in offset representation
Re: [PATCH v3 4/9] PCI/PM: Rework changing power states of PCI devices
Re: [PATCH v3] random: use first 128 bits of input as fast init
Re: ld.lld: error: inline assembly requires more registers than available at line 523
INIT_STACK_ALL_ZERO - Framework Laptop system freezes (kernel oops?) on boot
Re: [PATCH v2] i2c: at91: use dma safe buffers
Re: linux-next: build failure after merge of the amdgpu tree
Pedantically warn about // comments in gnu89 mode
Re: [PATCH bpf-next 8/9] libbpf: automatically fix up BPF_MAP_TYPE_RINGBUF size, if necessary
[ELF] Align the end of PT_GNU_RELRO to max-page-size instead of common-page-size
__aeabi_uldivmod in drivers/mtd/parsers/scpart.o
__mulodi4 in lib/overflow_kunit.o
Re: [linux-next:master 9995/11651] fs/buffer.c:2254:5: warning: stack frame size (2144) exceeds limit (1024) in 'block_read_full_folio'
Suggest typoed directives in preprocessor conditionals
"invalid input constraint '0' in asm" in arch/riscv/include/asm/errata_list.h
objtool "no non-local symbols" error with tip of tree LLVM
-Wframe-larger-than in sound/soc/intel/avs/path.c
Empty download_url key
Re: [linux-next:master 12308/12886] arch/x86/kvm/hyperv.c:1983:22: warning: shift count >= width of type
[PowerPC] Implement XL compat __fnabs and __fnabss builtins.
Re: [PATCH v1] driver core: Extend deferred probe timeout on driver registration
Re: [TCWG CI] Regression caused by llvm: [InstCombine] fold icmp with sub and bool
Re: [PATCH v5 5/7] null_blk: allow non power of 2 zoned devices
Re: drivers/dma/imx-dma.c:1048:20: warning: cast to smaller integer type 'enum imx_dma_type' from 'const void *'
CFI failure target: simpledrm_simple_display_pipe_mode_valid
Build timeouts due to infrastructure error retries?
Tooling improvements
These are changes to various tools that we use, such as our continuous integration setup, booting utilities, toolchain building scripts, or other closely related projects such as AOSP’s distribution of LLVM and TuxMake.
build-llvm.py: Add a note about LLVM commit 7d7771f34d14 for BOLT
docker: clang-android: Update to r450784e (14.0.7)
A couple of fixes for making tests pass on Arch Linux
ci: Wire up Arch Linux package building
Add support for ChromeOS
boot-qemu.sh: Fix aarch64 KVM after cb0698a
Fix ChromeOS runs
build-llvm.py: Introduce "slim" PGO
Disable ChromeOS jobs temporarily
Enable the integrated assembler for s390 on -next
Add objtool patch for stable and 5.15
Upgrade stable anchor to 5.18
Disable arm64 CFI builds on mainline for clang-{12,13}
Test statically linked clang outside of Alpine Linux
patches: 5.15: Fix objtool patch
github: workflows: Update Docker actions
Sink 'docker login' step to right before image push and other small cleanups
github: Move to a composite action for llvm-project builds
github: workflows: Rename llvm-project workflows
Update checkout, download-artifact, and upload-artifact versions
Upload toolchain tarball when build is successful
Behind the scenes
-
Every day that there is a new linux-next release, I rebase and build a few different kernel trees then boot and runtime test them on several different machines, including a Windows Subsystem for Linux instance, a Raspberry Pi 3 and 4, an Intel-based desktop, an AMD-based desktop, and an Intel-based laptop. This is not always visible because I do not report anything unless there is something broken but it can take up to a few hours each day, depending on the amount of churn and issues uncovered.
-
I wrote a blog post as part of my work to get our llvm-project container builds self-hosted on GitHub Actions.
Special thanks to:
- Google and the Linux Foundation for sponsoring my work.