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 :)
-
Miscellaneous fixes and improvements: These are fixes and improvements that don’t fit into a particular category but matter in some way to my other work.
btrfs: Drop WQ_PERCPU from ordered_flags in btrfs_init_workqueues()(v1)driver core: Use system_percpu_wq instead of system_wq(v1)drm/amd/display: Shorten hdmi_frl_status_polling_workqueue(v1,v2)kbuild: Use ld.lld for linking host programs when LLVM is set(v1)io_uring: Use system_dfl_wq instead of system_unbound_wq to fix warning(v1)
-
Stable backports and fixes: 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…wifi: mac80211: Fix -Wc23-extensions in hwmp_route_info_get()(v1)power: supply: max17042_battery: Use modern PM ops to clear up warning(v1)MIPS: lib: Remove '.hidden' for local symbols(v1)MIPS: VDSO: Avoid including .got in dynamic segment(v1)fortify: Disable -Wstringop-overread in tests(v1)
Patch handling, 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 v3] kbuild: rust: make `*.long-type-*.txt` a target for cleanupRe: [PATCH v3 1/2] kconfig: Remove the architecture specific config for AutoFDORe: [PATCH v3 2/2] kconfig: Remove the architecture specific config for PropellerRe: [PATCH v12 2/3] kbuild: change --thin back to 'T' in $(AR)Re: [PATCH] kbuild: rust: rename flag to `-Zdebuginfo-for-profiling` for Rust >= 1.98Re: [PATCH] kbuild: try readelf first in gen_symversionsRe: [RFC PATCH v2 2/6] kcov: add build system support for dataflow instrumentationRe: [PATCH kselftest] selftests: harness: Add __maybe_unused to _##fixture_name##_##test_name##_object.Re: [PATCH 2/3] vmsplice: make vmsplice a trivial wrapper for preadv2/pwritev2Re: [PATCH] init/Kconfig: Update the THREAD_INFO_IN_TASK descriptionRe: [PATCH] kbuild: normalize paths in quiet compile outputRe: [PATCH] filelock: update break_lease() stub with correct argumentsRe: [PATCH v2 00/16] Bump minimum version of LLVM for building the kernel to 17.0.1Re: [PATCH] run-clang-tools: run multiprocessing.Pool as context managerRe: [PATCH v12 0/3] kbuild: distributed build support for Clang ThinLTORe: [PATCH] modpost: Add __llvm_covfun and __llvm_covmap to section_white_listRe: [PATCH] Revert "i2c: designware: defer probe if child GpioInt controllers are not bound"Re: [PATCH 0/2] arm64: ftrace: support DIRECT_CALLS without CALL_OPS[PowerPC] Fix crash when promoting smaller types to 64 bit ucmpRe: [PATCH] x86/cfi: Use symmetric SYM_START and SYM_END in __CFI_TYPE()Re: [PATCH] net: correcting section tags for .init and .exit data/functionsRe: [PATCH v6 6/6] s390: Enable Rust supportRe: [PATCH] modpost: Ignore Clang LTO suffixes in symbol matchingRe: [PATCH] modpost: release allocation when early return no suffix .o in read_symbols()Re: [PATCH] x86/kcfi: Optimize call sequenceRe: [PATCH] docs: kbuild: remove ISDN references in Makefile examplesRe: [PATCH 17/29] ksmbd: return requested create allocation sizeRe: [PATCH v4 2/2] tracing: Remove trace_printk.h from kernel.hRe: [PATCH] kbuild: Use --force-group-allocation when linking modulesRe: [PATCH 1/4] scripts: fix spelling mistakesRe: [PATCH v2] modpost: prevent leak when early return no suffix .o in read_symbols()Re: [PATCH] tools/compiler: match glibc 2.42 definition of __attribute_const__Re: [PATCH] selftests: harness: Mark test fixture objects __maybe_unused
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.
Re: [PATCH v8 2/2] i2c: designware: defer probe if child GpioInt controllers are not boundRe: linux-next: manual merge of the kbuild tree with the clang-fixes treeRe: linux-next: manual merge of the jc_docs tree with the kbuild treeRe: [brauner-vfs:vfs-7.2.vmsplice 2/4] fs/read_write.c:1219:1: warning: alias and aliasee have different types 'long (unsigned long, const struct iovec *, unsigned long, unsigned int)' and 'long (typeof (__builtin_choose_expr((__builtin_types_compatible_p(typeof ((unsigned long)0), typeof (0LL...Re: [akpm-mm:mm-unstable 274/423] mm/userfaultfd.c:4475:1: warning: alias and aliasee have different types 'long (ulong, ulong, ulong, ulong, ulong, ulong, ulong)' (aka 'long (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long)') and 'l..."Unexpected run-time relocations (.rela) detected!" when building x86_64 bzImage after LLVM commit fa02a6ed66b1700c996b49c96c6bc0eb014c9518Re: [tip: timers/ptp] KVM: arm64: Use ktime_get_snapshot_id() to retrieve CLOCK_BOOTTIMERe: [PATCH v3] spi: cadence-xspi: Support 32bit and 64bit slave dma interfaceRe: linux-next: build failure after merge of the drm-xe treeRe: [GIT PULL] tracing: Fixes for 7.1[Legalizer] Add support for promoting integers for s/ucmpRe: [brauner-github:vfs-7.2.misc 28/28] fs/open.c:112:29: warning: converting the result of '<<' to a boolean always evaluates to trueRe: -next boot failures during KVM setupRe: [REGRESSION] next/master: (build) stack frame size (2088) exceeds limit (2048) in 'dml31_ModeSupport...Re: [PATCH v6 2/2] pinctrl: qcom: lpass-lpi: Switch to PM clock framework for runtime PMHOSTCC invocations don't use LLD with LLVM=1Re: [PATCH v4 0/2] workqueue: Add warnings and check WQ flags usageRe: [PATCH] lib/xz: replace min_t with minRe: [PATCH v4 2/2] pinctrl: ultrarisc: Add UltraRISC DP1000 pinctrl driverRe: [PATCH v7 2/2] lib: bitmap: optimize bitmap_find_next_zero_area_off()
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.
tc-build: Address new ty warningstc_build: tools: Fix LD printing when using GCCUpdate korg-clang-22 to 22.1.7Drop clang-15 and clang-16 builds from mainline, next, and tipbuild-llvm.py: Hide ty "invalid-argument-type" warningUpdate stable anchor to 7.1Bump PGO kernel to 7.1 and bump known good revisionbuild-binutils.py: 2.46.1Update korg-clang-22 to 22.1.8Apply fix for -Wattribute-alias to Android trees- Regular GitHub Actions updates
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 SolidRun Honeycomb LX2, an Ampere Altra Developer Platform, four Intel-based devices, and two AMD-based devices. 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 continue to upload prebuilt, fast versions of LLVM for kernel developers and our continuous integration to use.
-
I submitted the following pull requests.
Special thanks
Special thanks to Google and the Linux Foundation for sponsoring my work.