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 :)
-
Stable backports: 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 1/2] powerpc/64: Move CPU -mtune options into KconfigRe: [PATCH 2/2] powerpc/64: Use -mtune=pwr10/9/8 for clangRe: [PATCH] drm/vmwgfx: Fix src/dst_pitch confusionRe: [PATCH] kfence, kcsan: avoid passing -g for testsRe: [PATCH -next v15 19/19] riscv: Enable Vector code to be builtRe: [PATCH] ALSA: ymfpci: remove unused snd_ymfpci_readb functionRe: [PATCH] drm/rockchip: vop2: fix uninitialized variable possible_crtcsRe: [PATCH -next v16 19/20] riscv: detect assembler support for .option archRe: [PATCH v3] purgatory: fix disabling debug info
Issue triage, input, 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.
crash with RISC-V scalable vectorization and kernel address sanitizerRe: [PATCH -next v14 19/19] riscv: Enable Vector code to be builtRe: [PATCH] power: supply: qcom_battmgr: remove bogus do_div()Re: [PATCH v2] clk: Mark a fwnode as initialized when using CLK_OF_DECLARE() macroRe: [PATCH] staging: axis-fifo: initialize timeouts in probe onlyRe: [PATCH v3 1/6] drm/rockchip: vop2: initialize possible_crtcs properlyRe: [PATCH net-next v6 1/1] net: dsa: hellcreek: Get rid of custom led_init_default_state_get()ppc44x_defconfig does not boot with '-mcpu=440'stack protector boot failure in android-4.14-stable"Error: non-constant .uleb128 is not supported" in mm/kfence/kfence_test.c.init.data has both ordered and unordered sections on RISC-Vundefined __efistub_ symbols with CONFIG_EFI_ZBOOT=yRe: [PATCH 1/3] kvm: vmx: Add IA32_FLUSH_CMD guest supportRe: next-20230321: arm64: Unable to handle kernel paging request at virtual addressRe: Linux 6.3-rc3Re: [PATCH v8 2/2] drm: add kms driver for loongson display controllerfs/select.o: llvm::ValueHandleBase::RemoveFromUseList(): Assertion `*PrevPtr == this && "List invariant broken"'kern_levels.h:32:2: error: invalid preprocessing directiveinsn.h:399:1 <Spelling=./arch/arm64/include/asm/insn.h:299:66>: current parser tokenbpf_iter.c 1. ./include/linux/kernel.h:216:8: current parser token '__printf'BTF generation does not work with LLVM/lld-16[IVDescriptors] Add pointer InductionDescriptors with non-constant stridesRe: [PATCH 03/18] wifi: iwlwifi: mvm: report hardware timestamps in RX/TX statusRe: [PATCH v10 11/15] drm/atomic-helper: Set fence deadline for vblankRe: [PATCH] net: netcp: MAX_SKB_FRAGS is now 'int'
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.
patches: android14-6.1: Drop alternatives seriespatches: mainline: Drop memintristics seriesAdd 6.1 builds and update stable anchor to 6.2Update patches (March 8, 2023)Copy stable patches to 6.1Drop stable patches (March 13, 2023)boot-qemu.py: Rewrite using classesAdd support for mounting a shared folder between the host and guest via virtiofs (v2)docker: clang-android: Update to r487747 (17.0.0)boot-qemu.py: Do not add '-no-reboot' unconditionallyDrop mainline patches (March 20, 2023)Drop android14-6.1 patchesAdd powerpc allmodconfig build on linux-nextbuild-llvm.py: Switch to dict() over dictionary comprehensionUpdate default PGO kernel to 6.2.8 and update known good revisionDrop majority of Android patches (March 27, 2023)Drop android12-5.4 patches (March 28, 2022)Turn x86_64 allyesconfig builds back oncheck_logs.py: Print logs if build result is not a passDisable x86_64 allyesconfig builds on stableUpdate patches (March 30, 2023)
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 Raspberry Pi 4, a Raspberry Pi 3, a SolidRun Honeycomb LX2, an Ampere Altra Developer Platform, 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 put prebuilt LLVM toolchains on kernel.org for other developers (download link, announcement).
Special thanks
Special thanks to Google and the Linux Foundation for sponsoring my work.