I have been contracting for the Linux Foundation for two years now, going onto the third, and it dawned on me that I have never done a retrospective or yearly report. This is useful for looking back on the year’s worth of accomplishments, both to understand how much I have evolved and to look for areas that I would like to improve upon going forward. I have struggled with imposter syndrome for as long as I have been involved with the kernel community, so looking back to give credit where credit is due for particular solutions is a good way to try and combat that.

Linux kernel

This year, I had 132 commits accepted and merged into mainline. They can be viewed on the web or by running the following command in an up-to-date Linux repository locally using the following command:

$ git log \
    --author='Nathan Chancellor' \
    --oneline \
    --since-as-filter='Jan 1, 2022' \
    --until='Jan 1, 2023' \
    origin/master

A similar command will be used to generate all following commit logs, which are included for convenience behind some collapsible Markdown with links.

Kernel contributions in 2022 (git.kernel.org)

d6a9fb87e9d1 ("security: Restrict CONFIG_ZERO_CALL_USED_REGS to gcc or clang > 15.0.6")
19331e84c387 ("modpost: Include '.text.*' in TEXT_SECTIONS")
0d24f1b7cc65 ("padata: Mark padata_work_init() as __ref")
45be2ad007a9 ("x86/vdso: Conditionally export __vdso_sgx_enter_enclave()")
1aba7930c63e ("media: rzg2l-cru: Remove unnecessary shadowing of ret in rzg2l_csi2_s_stream()")
9e913888647b ("hwmon: (smpro-hwmon) Improve switch statments in smpro_is_visible()")
59e2cf8d21e0 ("ARM: 9275/1: Drop '-mthumb' from AFLAGS_ISA")
0ad811cc08a9 ("drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid()")
96d845a67b7e ("drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid()")
cab75e1c8e42 ("cpufreq: ACPI: Remove unused variables 'acpi_cpufreq_online' and 'ret'")
913a144164d8 ("HSI: ssi_protocol: Fix return type of ssip_pn_xmit()")
890d637523ee ("drm/mediatek: Fix return type of mtk_hdmi_bridge_mode_valid()")
75b5e4720132 ("fs/ntfs3: Eliminate unnecessary ternary operator in ntfs_d_compare()")
fcae44fd36d0 ("RISC-V: vdso: Do not add missing symbols to version section in linker script")
000f8870a47b ("vmlinux.lds.h: Fix placement of '.data..decrypted' section")
3d75e766b58a ("scsi: elx: libefc: Fix second parameter type in state callbacks")
a679120edfcf ("bpf: Add explicit cast to 'void *' for __BPF_DISPATCHER_UPDATE()")
bb16db839365 ("s390/lcs: Fix return type of lcs_start_xmit()")
88d86d18d7cf ("s390/netiucv: Fix return type of netiucv_tx()")
aa5bf80c3c06 ("s390/ctcm: Fix return type of ctc{mp,}m_tx()")
8e0aa1ff44ca ("net: ethernet: renesas: Fix return type of rswitch_start_xmit()")
e4d0ef752081 ("drm/amdgpu: Fix type of second parameter in odn_edit_dpm_table() callback")
f0d0f1087333 ("drm/amdgpu: Fix type of second parameter in trans_msg() callback")
c5733e5b15d9 ("hamradio: baycom_epp: Fix return type of baycom_send_packet()")
63fe6ff674a9 ("net: ethernet: ti: Fix return type of netcp_ndo_start_xmit()")
6c4e4d352033 ("drm/meson: Fix return type of meson_encoder_cvbs_mode_valid()")
a8a4f0467d70 ("drm/i915: Fix CFI violations in gt_sysfs")
0d6d7c61ffee ("fs/ntfs3: Don't use uni1 uninitialized in ntfs_d_compare()")
e688ba3e2764 ("drm/amdkfd: Fix type of reset_type parameter in hqd_destroy() callback")
e299b00adf3d ("drm/amdkfd: Fix type of reset_type parameter in hqd_destroy() callback")
33806e7cb8d5 ("x86/Kconfig: Drop check for -mabi=ms for CONFIG_EFI_STUB")
0a6de78cff60 ("lib/Kconfig.debug: Add check for non-constant .{s,u}leb128 support to DWARF5")
2130b87b2273 ("drm/amd/display: Fix build breakage with CONFIG_DEBUG_FS=n")
d2995249a2f7 ("arm64: alternatives: Use vdso/bits.h instead of linux/bits.h")
a15e17acce5a ("usb: gadget: uvc: Fix argument to sizeof() in uvc_register_video()")
0402cca4828d ("ASoC: Intel: sof_da7219_mx98360a: Access num_codecs through dai_link")
9af48b262675 ("platform/x86/amd: pmc: Fix build without debugfs")
f525ed19437d ("drm/amd/display: Reduce number of arguments of dml314's CalculateFlipSchedule()")
faed5d018248 ("drm/amd/display: Reduce number of arguments of dml314's CalculateWatermarksAndDRAMSpeedChangeSupport()")
db74cd6337d2 ("arm64/sysreg: Fix a few missed conversions")
25ea501ed85d ("drm/amd/display: Reduce number of arguments of dml314's CalculateFlipSchedule()")
ca07f4f5a98b ("drm/amd/display: Reduce number of arguments of dml314's CalculateWatermarksAndDRAMSpeedChangeSupport()")
2e50e9bf328f ("net/mlx5e: Ensure macsec_rule is always initiailized in macsec_fs_{r,t}x_add_rule()")
682493e401a2 ("drm/msm/dsi: Remove use of device_node in dsi_host_parse_dt()")
55cafd4ba42c ("power: supply: bq25890: Fix enum conversion in bq25890_power_supply_set_property()")
b0f4b23fc3db ("drm/amd/display: Mark dml30's UseMinimumDCFCLK() as noinline for stack usage")
1dbec5b4b0ef ("drm/amd/display: Reduce number of arguments of dml31's CalculateFlipSchedule()")
ab2ac59c32db ("drm/amd/display: Reduce number of arguments of dml31's CalculateWatermarksAndDRAMSpeedChangeSupport()")
3b4e83a23224 ("drm/amd/display: Reduce number of arguments of dml32_CalculatePrefetchSchedule()")
1df7e5695224 ("drm/amd/display: Reduce number of arguments of dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport()")
41012d715d5d ("drm/amd/display: Mark dml30's UseMinimumDCFCLK() as noinline for stack usage")
21485d3da659 ("drm/amd/display: Reduce number of arguments of dml31's CalculateFlipSchedule()")
37934d4118e2 ("drm/amd/display: Reduce number of arguments of dml31's CalculateWatermarksAndDRAMSpeedChangeSupport()")
a3fef74b1d48 ("drm/amd/display: Reduce number of arguments of dml32_CalculatePrefetchSchedule()")
c4be0ac987f2 ("drm/amd/display: Reduce number of arguments of dml32_CalculateWatermarksMALLUseAndDRAMSpeedChangeSupport()")
269e633dad16 ("coresight: cti-sysfs: Mark coresight_cti_reg_store() as __maybe_unused")
cfe0d370e078 ("powerpc/math_emu/efp: Include module.h")
6cf07810e9ef ("powerpc/papr_scm: Ensure rc is always initialized in papr_scm_pmu_register()")
92f97c00f0ca ("net/mlx5e: Do not use err uninitialized in mlx5e_rep_add_meta_tunnel_rule()")
7d3ac70d8208 ("ASoC: codes: src4xxx: Avoid clang -Wsometimes-uninitialized in src4xxx_hw_params()")
5c5c2baad2b5 ("ASoC: mchp-spdiftx: Fix clang -Wbitfield-constant-conversion")
370655bc183b ("scripts/Makefile.extrawarn: Do not disable clang's -Wformat-zero-length")
eab9100d9898 ("ASoC: mchp-spdiftx: Fix clang -Wbitfield-constant-conversion")
f9929f69de94 ("drm/simpledrm: Fix return type of simpledrm_simple_display_pipe_mode_valid()")
78acd4ca4334 ("usb: cdns3: Don't use priv_dev uninitialized in cdns3_gadget_ep_enable()")
74de14fe05dd ("MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0")
0c09bc33aa8e ("drm/simpledrm: Fix return type of simpledrm_simple_display_pipe_mode_valid()")
d81677410f17 ("ASoC: amd: acp: Fix initialization of ext_intr_stat1 in i2s_irq_handler()")
db886979683a ("x86/speculation: Use DECLARE_PER_CPU for x86_spec_ctrl_current")
33f32e5072b6 ("bpf, arm64: Mark dummy_tramp as global")
c3c0ed75ffbf ("mmc: sdhci-brcmstb: Initialize base_clk to NULL in sdhci_brcmstb_probe()")
1b8667812b3a ("x86/Kconfig: Fix CONFIG_CC_HAS_SANE_STACKPROTECTOR when cross compiling with clang")
c749d676a33d ("soc: mediatek: SVS: Use DEFINE_SIMPLE_DEV_PM_OPS for svs_pm_ops")
9e07352ef779 ("arm64: vdso32: Add DWARF_DEBUG")
859716b4131f ("arm64: vdso32: Shuffle .ARM.exidx section above ELF_DETAILS")
10a9035c36d0 ("drm/amd/display: Fix indentation in dcn32_get_vco_frequency_from_reg()")
e83031564137 ("riscv: Fix ALT_THEAD_PMA's asm parameters")
bd476c1306ea ("misc: rtsx: Fix clang -Wsometimes-uninitialized in rts5261_init_from_hw()")
61114e734ccb ("riscv: Move alternative length validation into subsection")
48a75b979940 ("ath6kl: Use cc-disable-warning to disable -Wdangling-pointer")
79f9fbe30352 ("mailbox: qcom-ipcc: Fix -Wunused-function with CONFIG_PM_SLEEP=n")
4406b12214f6 ("powerpc/vdso: Link with ld.lld when requested")
e247172854a5 ("powerpc/vdso: Remove unused ENTRY in linker scripts")
58606220a2f1 ("drm/i915: Fix CFI violation with show_dynamic_id()")
6977262c2eee ("i2c: at91: Initialize dma_buf in at91_twi_xfer()")
18fb42db05a0 ("drm/i915: Fix CFI violation with show_dynamic_id()")
acd51562e07d ("platform/x86: amd-pmc: Shuffle location of amd_pmc_get_smu_version()")
45bd8951806e ("arm64: Improve HAVE_DYNAMIC_FTRACE_WITH_REGS selection for clang")
390d645877ff ("drm/msm/gpu: Avoid -Wunused-function with !CONFIG_PM_SLEEP")
6d4a6b515c39 ("btrfs: remove unused variable in btrfs_{start,write}_dirty_block_groups()")
83a1cde5c74b ("ARM: davinci: da850-evm: Avoid NULL pointer dereference")
1e39036de5fc ("Revert "um: clang: Strip out -mno-global-merge from USER_CFLAGS"")
cf300b83c793 ("kbuild: Remove '-mno-global-merge'")
e9c281928c24 ("kbuild: Make $(LLVM) more flexible")
07ea4ab1f9b8 ("KVM: x86: Fix clang -Wimplicit-fallthrough in do_host_cpuid()")
6b49f3409a09 ("dt-bindings: kbuild: Make DT_SCHEMA_LINT a recursive variable")
a4812d47deff ("mm/page_alloc: mark pagesets as __maybe_unused")
f6a2c2b2de81 ("x86/Kconfig: Only allow CONFIG_X86_KERNEL_IBT with ld.lld >= 14.0.0")
262448f3d189 ("x86/Kconfig: Only enable CONFIG_CC_HAS_IBT for clang >= 14.0.0")
a860f266a0e1 ("drm/selftest: plane_helper: Put test structures in static storage")
aaeed6ecc125 ("x86/Kconfig: Do not allow CONFIG_X86_X32_ABI=y with llvm-objcopy")
d0583229bcf5 ("i2c: designware: Mark dw_i2c_plat_{suspend,resume}() as __maybe_unused")
f0a4e62bb534 ("io_uring: Fix use of uninitialized ret in io_eventfd_register()")
36168e387fa7 ("ARM: Do not use NOCROSSREFS directive with ld.lld")
52c9f93a9c48 ("arm64: Do not include __READ_ONCE() block in assembly files")
bf127df3ccea ("clocksource/drivers/imx-tpm: Move tpm_read_sched_clock() under CONFIG_ARM")
f014a00bbeb0 ("compiler-clang.h: Add __diag infrastructure for clang")
185897d03ca3 ("iio: accel: adxl367: Fix handled initialization in adxl367_irq_handler()")
ab2f993c01f2 ("ftrace: Remove unused ftrace_startup_enable() stub")
3b2f68f196a5 ("drm/stm: Avoid using val uninitialized in ltdc_set_ycbcr_config()")
b63c54d97823 ("drm/amdkfd: Use proper enum in pm_unmap_queues_v9()")
c47c7ab9b536 ("MIPS: Malta: Enable BLK_DEV_INITRD")
1cf5f151d25f ("Makefile.extrawarn: Move -Wunaligned-access to W=1")
345be4275cad ("thermal: netlink: Fix parameter type of thermal_genl_cpu_capability_event() stub")
d49fc69293f2 ("MIPS: Loongson{2ef,64}: Wrap -mno-branch-likely with cc-option")
0e96ea5c3eb5 ("MIPS: Loongson64: Clean up use of cc-ifversion")
7f3bdbc3f131 ("tools/resolve_btfids: Do not print any commands when building silently")
42d9b379e3e1 ("lib/Kconfig.debug: Allow BTF + DWARF5 with pahole 1.21+")
6323c81350b7 ("lib/Kconfig.debug: Use CONFIG_PAHOLE_VERSION")
2d6c9810eb89 ("scripts/pahole-flags.sh: Use pahole-version.sh")
613fe1692377 ("kbuild: Add CONFIG_PAHOLE_VERSION")
f67644b4f282 ("MAINTAINERS: Add scripts/pahole-flags.sh to BPF section")
bbd2e05fad3e ("lib/Kconfig.debug: make TEST_KMOD depend on PAGE_SIZE_LESS_THAN_256KB")
e9009095998a ("btrfs: use generic Kconfig option for 256kB page size limit")
e4bbd20d8c2b ("arch/Kconfig: split PAGE_SIZE_LESS_THAN_256KB from PAGE_SIZE_LESS_THAN_64KB")
a89eeb9937a0 ("media: atomisp: Do not define input_system_cfg2400_t twice")
4ccdcc8ffd95 ("iwlwifi: mvm: Use div_s64 instead of do_div in iwl_mvm_ftm_rtt_smoothing()")
751971af2e36 ("csky: Fix function name in csky_alignment() and die()")
ab4ababdf77c ("h8300: Fix build errors from do_exit() to make_task_dead() transition")
4f0712ccec09 ("hexagon: Fix function name in die()")
4e31bfa37662 ("clk: visconti: Remove pointless NULL check in visconti_pll_add_lookup()")
be185c2988b4 ("cxl/core: Remove cxld_const_init in cxl_decoder_alloc()")


You will notice that I spend a lot of time fixing warnings, which have been a higher priority ever since CONFIG_WERROR was introduced last year. allmodconfig enables CONFIG_WERROR, which is a common testing target for developers and continuous integration, so it is important to keep this working. As a direct result of that work and the work of others such as Arnd Bergmann, we were able to stop disabling CONFIG_WERROR for arm64 allmodconfig and x86_64 allmodconfig this year, which gives us leverage when things break. Linus himself has voiced displeasure when things break with clang (example) but that can only happen when the build with clang continues to work. Additionally, ever since GCC’s -Wmaybe-uninitialized was globally disabled for a normal kernel build in 5.7, clang’s -Wuninitialized and -Wsometimes-uninitialized have become a constant nuisance since developers will introduce them inadvertently and not realize it because GCC never told them about it. Some developers have started integrating clang testing into their workflows to help catch these, such as the netdev folks, who I regularly see tell contributors their patch has errors with clang, but it is a slow process; until then, we’ll be fixing them ourselves to keep the builds green.

There are a few different commits that I am particularly proud of due to how they tested me and forced me to dig deeper for an answer:

  • a8a4f0467d70 ("drm/i915: Fix CFI violations in gt_sysfs"): This one was particularly wild becuase it seemed so simple at first. I booted up my test Intel desktop, saw the failure, debugged for a bit, wrote the patch, and was so confident it was right that I considered not even testing the patch before sending it. I learned very quickly that is never a good idea since my patch was broken in its current state. As I read the code and started to fully understand what was going on, I started to worry I was not going to be able to fix it but at the end of the day, I am surrounded by people who know more than I do that I can ask for help and I have started to write development journals so that I am sure I understand the problem before starting a solution. This one was fun to have people review and test because it was so large but I am thankful for all the review that I did get, since it helped warp the patch into something that is worthwhile.

  • 52c9f93a9c48 ("arm64: Do not include __READ_ONCE() block in assembly files"): This one was fun to debug because I got to the point of git diffing preprocessed assembly files :) Debugging header include issues is probably one of my least favorite things but this was high priority because the commit that introduced this breakage was a part of the Spectre-BHB fixes, which were going to be rapidly backported to the stable trees and potentially break downstream consumers of Clang’s LTO, like Android. I felt really good once I had gotten the commit message written because it felt like it was going to make a real, tangible impact somewhere.

  • e9c281928c24 ("kbuild: Make $(LLVM) more flexible"): While I cannot claim credit for the implementation of this commit, I am proud of this commit because it is addressing a core Linux kernel developer concern that was brought up to us, which allows them to continue to test with LLVM. It is very important to listen to developers and maintainers when they complain about our project because they are the ones we have to get buy in from. Our project could collapse if maintainers decide they do not want to put up with the idiosyncracies of building the kernel with LLVM or even worse, refuse to let the kernel be built with LLVM, like ld.gold. That is an obvious extreme that is unlikely at this point, especially when core maintainers have openly accepted our approach to maintaining LLVM support, but it is important to remember that since the kernel and LLVM are always evolving, we have to be present and responsive at all times.

It is important to keep in mind that sending patches is only part of the development process. The others are reporting problems and testing and reviewing solutions to those problems. The kernel keeps track of these through particular tags: Reported-by, Reviewed-by, and Tested-by. In 2022, I provided those tags on 188 patches. The break down of patches that contained:

  • Reported-by: 48
  • Reviewed-by: 91
  • Tested-by: 84

A full list of those commits are below, generated with the following command in an up-to-date Linux checkout:

$ git log \
    --extended-regexp \
    --grep='(Report|Review|Test)ed-by: Nathan Chancellor' \
    --oneline \
    --since-as-filter=01-01-2022 \
    --until=01-01-2023
Reported-by, Reviewed-by, and Tested-by

6a7ee50f8f56 ("ARM: disallow pre-ARMv5 builds with ld.lld")
980411a4d1bb ("powerpc/code-patching: Fix oops with DEBUG_VM enabled")
87d599fc3955 ("kbuild: ensure Make >= 3.82 is used")
fccb3d3eda8d ("kbuild: add test-{ge,gt,le,lt} macros")
80b6093b55e3 ("kbuild: add -Wundef to KBUILD_CPPFLAGS for W=1 builds")
efa80b028c7a ("kbuild: move -Werror from KBUILD_CFLAGS to KBUILD_CPPFLAGS")
0ba09b173387 ("Revert "mm: align larger anonymous mappings on THP boundaries"")
d03407183d97 ("wifi: ath10k: fix QCOM_SMEM dependency")
beb3d47d1d3d ("bpf: Fix a BTF_ID_LIST bug with CONFIG_DEBUG_INFO_BTF not set")
32d495b0c330 ("Revert "arm64/mm: Drop redundant BUG_ON(!pgtable_alloc)"")
9f8fe647797a ("Makefile.debug: support for -gz=zstd")
23df39fc6a36 ("locking: Fix qspinlock/x86 inline asm error")
612d80784fdc ("MIPS: fix duplicate definitions for exported symbols")
e287bd005ad9 ("KVM: SVM: restore host save area from assembly")
defbab270d45 ("include/uapi/linux/swab: Fix potentially missing __always_inline")
f39556bc2530 ("compiler-gcc: document minimum version for `__no_sanitize_coverage__`")
689540cbda7f ("compiler-gcc: remove attribute support check for `__no_sanitize_undefined__`")
095ac0763ac5 ("compiler-gcc: remove attribute support check for `__no_sanitize_thread__`")
ae37a9a2c2d0 ("compiler-gcc: remove attribute support check for `__no_sanitize_address__`")
6e2be1f2ebce ("compiler-gcc: be consistent with underscores use for `no_sanitize`")
1d2e9b67b001 ("ARM: 9265/1: pass -march= only to compiler")
26b12e084bce ("ARM: 9264/1: only use -mtp=cp15 for the compiler")
a2faac39866d ("ARM: 9263/1: use .arch directives instead of assembler command line flags")
80ddf5ce1c92 ("s390: always build relocatable kernel")
5aa4860eb50f ("ARM: 9262/1: remove lazy evaluation in Makefile")
3220022038b9 ("ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod")
bce5a1e8a340 ("x86/mem: Move memmove to out of line assembler")
e1789d7c752e ("kbuild: upgrade the orphan section warning to an error if CONFIG_WERROR is set")
62e1cbfc5d79 ("fortify: Short-circuit known-safe calls to strscpy()")
41eefc46a3a4 ("string: Convert strscpy() self-test to KUnit")
03e9491fff25 ("pinctrl: qcom: lpass-lpi: Add missed bitfield.h")
fc007fb815ab ("drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid")
f8fbf0dc702b ("ASoC: SOF: fix compilation issue with readb/writeb helpers")
fb3041d61f68 ("kbuild: fix SIGPIPE error message for AR=gcc-ar and AR=llvm-ar")
aae538cd03bc ("riscv: fix detection of toolchain Zihintpause support")
b8c86872d1dc ("riscv: fix detection of toolchain Zicbom support")
0e5b9f25b27a ("overflow: disable failing tests for older clang versions")
80e5acb6dd72 ("wifi: rtl8xxxu: Fix reads of uninitialized variables hw_ctrl_s1, sw_ctrl_s1")
8e5bad7dccec ("sched: Introduce struct balance_callback to avoid CFI mismatches")
c67a85bee78d ("kbuild: add -fno-discard-value-names to cmd_cc_ll_c")
3cebf80e9a0d ("riscv: Pass -mno-relax only on lld < 15.0.0")
bb1435f3f575 ("Kconfig.debug: add toolchain checks for DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT")
4f001a21080f ("Kconfig.debug: simplify the dependency of DEBUG_INFO_DWARF4/5")
450a580fc4b5 ("net: lan966x: Fix return type of lan966x_port_xmit")
820dc0523e05 ("net: netfilter: move bpf_ct_set_nat_info kfunc in nf_nat_bpf.c")
0f1fe9d61683 ("Revert "kbuild: Check if linker supports the -X option"")
0b33a33bd15d ("drm/msm: Fix return type of mdp4_lvds_connector_mode_valid")
88b61e3bff93 ("Makefile.compiler: replace cc-ifversion with compiler-specific macros")
fb2d14add4f8 ("Drivers: hv: vmbus: Split memcpy of flex-array")
37dcc673d065 ("frontswap: don't call ->init if no ops are registered")
3c516f89e17e ("x86: Add support for CONFIG_CFI_CLANG")
a4b7a12c5594 ("x86/purgatory: Disable CFI")
ccace936eec7 ("x86: Add types to indirectly called assembly functions")
ca7e10bff196 ("x86/tools/relocs: Ignore __kcfi_typeid_ relocations")
dfb352ab1162 ("kallsyms: Drop CONFIG_CFI_CLANG workarounds")
3c68a92d17ad ("objtool: Disable CFI warnings")
5659b598b4dc ("treewide: Drop __cficanonical")
4b24356312fb ("treewide: Drop WARN_ON_FUNCTION_MISMATCH")
607289a7cd7a ("treewide: Drop function_nocfi")
5dbbb3eaa2a7 ("init: Drop __nocfi from __init")
5f20997c194e ("arm64: Drop unneeded __nocfi attributes")
b26e484b8bb3 ("arm64: Add CFI error handling")
c50d32859e70 ("arm64: Add types to indirect called assembly functions")
44f665b69c67 ("psci: Fix the function type for psci_initcall_t")
cf90d0383560 ("lkdtm: Emit an indirect call for CFI tests")
e84e008e7b02 ("cfi: Add type helper macros")
89245600941e ("cfi: Switch to -fsanitize=kcfi")
92efda8eb152 ("cfi: Drop __CFI_ADDRESSABLE")
9fca7115827b ("cfi: Remove CONFIG_CFI_CLANG_SHADOW")
d0f9562ee43a ("scripts/kallsyms: Ignore __kcfi_typeid_")
f143ff397a3f ("treewide: Filter out CC_FLAGS_CFI")
9512d5f8e34f ("staging: r8188eu: Fix return type of rtw_xmit_entry")
b77599043f00 ("staging: octeon: Fix return type of cvm_oct_xmit and cvm_oct_xmit_pow")
2851349ac351 ("staging: rtl8192u: Fix return type of ieee80211_xmit")
32ef9e5054ec ("Makefile.debug: re-enable debug info for .S files")
61f2b7c7497b ("Makefile.debug: set -g unconditional on CONFIG_DEBUG_INFO_SPLIT")
237fe7274942 ("scripts/clang-tools: remove unused module")
0072dc1b53c3 ("arm64: avoid BUILD_BUG_ON() in alternative-macros")
8bb7c4f8c927 ("openvswitch: Change the return type for vport_ops.send function hook to int")
106c67ce46f3 ("net: korina: Fix return type of korina_send_packet")
40662333dd7c ("net: ethernet: litex: Fix return type of liteeth_start_xmit")
5972ca946098 ("net: ethernet: ti: davinci_emac: Fix return type of emac_dev_xmit")
0191580b000d ("net: davicom: Fix return type of dm9000_start_xmit")
21f0b7dabf9c ("drm/i915: Fix return type of mode_valid function hook")
06c1c49d0cd1 ("fortify: Adjust KUnit test for modular build")
b0b9408f1326 ("drm/rockchip: Fix return type of cdn_dp_connector_mode_valid")
a66de5283e16 ("powerpc/pseries: Fix plpks crash on non-pseries")
7245fc5bb7a9 ("powerpc/math-emu: Remove -w build flag and fix warnings")
b0839b281c42 ("Makefile.extrawarn: re-enable -Wformat for clang; take 2")
4ffb4d25ef12 ("wifi: rtw88: fix uninitialized use of primary channel index")
ea522b806162 ("platform/x86/amd/pmf: Fix clang unused variable warning")
a0a12c3ed057 ("asm goto: eradicate CC_HAS_ASM_GOTO")
c9a1dd673f28 ("rtc: zynqmp: initialize fract_tick")
b7bf23c0865f ("ASoC: SOF: ipc3-topology: Fix clang -Wformat warning")
b5276c924497 ("drivers: lkdtm: fix clang -Wformat warning")
b4909252da9b ("drivers: lkdtm: fix clang -Wformat warning")
b321823a03dc ("io_uring: fix io_poll_remove_all clang warnings")
f066b8f7d961 ("drivers: iommu: fix clang -wformat warning")
1e744351bcb9 ("ASoC: Intel: avs: Use lookup table to create modules")
9950f1121133 ("can: pch_can: pch_can_error(): initialize errc before using it")
aa8c7cdbae58 ("netfilter: xt_TPROXY: remove pr_debug invocations")
29589ca09a74 ("ARM: 9208/1: entry: add .ltorg directive to keep literals in range")
5b47d2364652 ("net: rxrpc: fix clang -Wformat warning")
ffff4913c7e2 ("eeprom: idt_89hpesx: fix clang -Wformat warnings")
bdd0d7e290e0 ("drm/amd/display: fix non-x86/PPC64 compilation")
2fd26970cf66 ("Revert "kernfs: Change kernfs_notify_list to llist."")
51bae889fe11 ("af_unix: Put pathname sockets in the global hash table.")
1e70212e0315 ("hinic: Replace memcpy() with direct assignment")
291810be4227 ("Documentation/llvm: Update Supported Arch table")
2c0ab32b73cf ("hinic: Replace memcpy() with direct assignment")
d30dfd490f7d ("include/uapi/linux/swab.h: move explicit cast outside ternary")
c0c87382c1a6 ("drm/amdgpu/display: fix build when CONFIG_DEBUG_FS is not set")
90f4b5499cdd ("rtw88: 8821c: fix access const table of channel parameters")
9be4cbd09da8 ("driver core: Set default deferred_probe_timeout back to 0.")
5ee76c256e92 ("driver core: Fix wait_for_device_probe() & deferred_probe_timeout interaction")
e15db62bc564 ("swiotlb: fix setting ->force_bounce")
01ece65132e2 ("drm/ssd130x: Only define a SPI device ID table when built as a module")
f6b66ca4f38b ("kbuild: rebuild multi-object modules when objtool is updated")
ebd191b38c5e ("kbuild: add cmd_and_savecmd macro")
c6031b1dbbbf ("kbuild: make *.mod rule robust against too long argument error")
cd968b97c492 ("kbuild: make built-in.a rule robust against too long argument error")
31cb50b5590f ("kbuild: check static EXPORT_SYMBOL* by script instead of modpost")
c25e1c55822f ("kbuild: do not create *.prelink.o for Clang LTO or IBT")
5ce2176b81f7 ("genksyms: adjust the output format to modpost")
7375cbcf2343 ("kbuild: stop merging *.symversions")
7b4537199a4a ("kbuild: link symbol CRCs at final link, removing CONFIG_MODULE_REL_CRCS")
f292d875d0dc ("modpost: extract symbol versions from *.cmd files")
69c4cc99bbcb ("modpost: add sym_find_with_module() helper")
ead165fa1042 ("objtool: Fix symbol creation")
1a6dd9996699 ("can: mcp251xfd: silence clang's -Wunaligned-access warning")
8218827b73c6 ("scripts/min-tool-version.sh: raise minimum clang version to 14.0.0 for s390")
bb31074db95f ("s390/boot: do not emit debug info for assembly with llvm's IAS")
e9953b729b78 ("s390/boot: workaround llvm IAS bug")
e6ed91fd0768 ("s390/alternatives: remove padding generation code")
fad442d3abde ("s390/alternatives: provide identical sized orginal/alternative sequences")
2a66c3124afd ("modpost: change the license of EXPORT_SYMBOL to bool type")
78e9e56af385 ("kbuild: record symbol versions in *.cmd files")
e493f4727520 ("kbuild: generate a list of objects in vmlinux")
a44abaca0e19 ("modpost: move *.mod.c generation to write_mod_c_files()")
7fedac9698b3 ("modpost: merge add_{intree_flag,retpoline,staging_flag} to add_header")
5eefe17c7ae4 ("libbpf: Clean up ringbuf size adjustment implementation")
0e9000296553 ("ipc/sem: remove redundant assignments")
7374fa33dc2d ("init/Kconfig: remove USELIB syscall by default")
9d79799193b7 ("fbcon: Fix delayed takeover locking")
e6f3b3c9c109 ("cfi: Use __builtin_function_start")
1754cea1763e ("drm/amd/display: fix 64 bit divide in freesync code")
334865b2915c ("x86/extable: Prefer local labels in .set directives")
22ef7ee3eeb2 ("PCI: hv: Remove unused hv_set_msi_entry_from_desc()")
9fbed27a7a11 ("kbuild: add --target to correctly cross-compile UAPI headers with Clang")
60210a3d86dc ("riscv module: remove (NOLOAD)")
faf79934e65a ("s390/alternatives: avoid using jgnop mnemonic")
b027471adaf9 ("Revert "ubsan, kcsan: Don't combine sanitizer with kcov on clang"")
14e83077d55f ("include: drop pointless __compiler_offsetof indirection")
f9b3cd245784 ("Kconfig.debug: make DEBUG_INFO selectable from a choice")
ffea9fb31936 ("sched/headers: ARM needs asm/paravirt_api_clock.h too")
c7500c1b53bf ("um: Allow builds with Clang")
a8ae15ead9c9 ("ASoC: atmel: mchp-pdmc: Fix `-Wpointer-bool-conversion` warning")
b847bd64ea9f ("MIPS: Only use current_stack_pointer on GCC")
1e24078113ae ("Kbuild: use -std=gnu11 for KBUILD_USERCFLAGS")
e8c07082a810 ("Kbuild: move to -std=gnu11")
4d94f910e79a ("Kbuild: use -Wdeclaration-after-statement")
1344794a59db ("Kbuild: add -Wno-shift-negative-value where -Wextra is used")
6c7cb60bff7a ("ARM: fix Thumb2 regression with Spectre BHB")
6580c5c18fb3 ("um: clang: Strip out -mno-global-merge from USER_CFLAGS")
afcf5441b9ff ("arm64: Add gcc Shadow Call Stack support")
d55957fb299b ("drm/amdkfd: bail out early if no get_atc_vmid_pasid_mapping_info")
330f4c53d3c2 ("ARM: fix build error when BPF_SYSCALL is disabled")
4013e26670c5 ("arm64: module: remove (NOLOAD) from linker script")
925088781eed ("KVM: x86: Fix pointer mistmatch warning when patching RET0 static calls")
d4c858643263 ("kallsyms: ignore all local labels prefixed by '.L'")
baf682144eca ("drm/i915: fix build issue when using clang")
efa90c11f62e ("stack: Constrain and fix stack offset randomization with Clang builds")
8cb37a5974a4 ("stack: Introduce CONFIG_RANDOMIZE_KSTACK_OFFSET")
5790597d7113 ("spi: Fix warning for Clang build and simplify code")
818ab43fc56a ("fortify: Update compile-time tests for Clang 14")
cc188a73addc ("drm/amd/pm: fix enabled features retrieving on Renoir and Cyan Skillfish")
a69cb445f7d1 ("crypto: arm/xor - make vectorized C code Clang-friendly")
297565aa22cf ("lib/xor: make xor prototypes more friendly to compiler vectorization")
6bf625a4140f ("Drivers: hv: vmbus: Rework use of DMA_BIT_MASK(64)")
d2a02e3c8bb6 ("lib/crypto: blake2s: avoid indirect calls to compression function for Clang CFI")
b7892f7d5cb2 ("tools: Ignore errors from `which' when searching a GCC toolchain")
b470947c3672 ("usb: dwc3: xilinx: fix uninitialized return value")
25d2e41cf59b ("pinctrl: thunderbay: rework loops looking for groups names")
bece04b5b41d ("kcov: fix generic Kconfig dependencies if ARCH_WANTS_NO_INSTR")
35140d399db2 ("script/sorttable: Fix some initialization problems")
2056e2989bf4 ("x86/sgx: Fix NULL pointer dereference on non-SGX systems")
5d9224fb076e ("scsi: hisi_sas: Remove unused variable and check in hisi_sas_send_ata_reset_each_phy()")
5fe41793bc78 ("ARM: 9176/1: avoid literal references in inline assembly")


As a direct result of this, I appeared in the top testers in the 5.19 development cycle and 6.1 development cycle.

LLVM

I am far from a large LLVM contributor but I do have occasional patches there as part of this work. This year, I had 4 patches to LLVM, which were all just reverts of patches that caused issue for us, which I was a little bit more aggressive about this year due to our use of LLVM ToT in continuous integration.

LLVM contributions in 2022 (GitHub)

74bace2dfe57 ("Revert "[AArch64] Improve codegen for shifted mask op"")
23c50432fb25 ("Revert "[AArch64]SME2 Outer Product and Accumulate instructions"")
4e0008dcbe9f ("Revert "[InstCombine] try to narrow shifted bswap-of-zext"")
22eb1dae3fb2 ("Revert "[AArch64] Adds SUBS and ADDS instructions to the MIPeepholeOpt."")


Tooling

We have a few different repositories in our GitHub organization that we use for testing and development, which I call “tooling”. Tooling is very important for repetitive tasks or tasks where you want to take the human out of the equation so that mistakes are less likely, such as a bisect. Additionally, there are some other repositories that we rely on, like TuxMake, that I consistently contribute to.

A common theme this year is moving more and more infrastructure to Python where possible, as it gives us more flexibility in writing scripts that can do complicated things without worrying about how we are handling input, because we actually have types and data structures in Python, unlike shell. In particular, moving boot-utils to Python has increased what we are able to do with it, such as passing along a folder from the host to the VM.

Like previously, I have included the git log output with direct links to commits, along with a web link to browse the history there.

boot-utils (GitHub)

772eb24 ("boot-qemu.py: Check gdb_bin earlier")
867976c ("boot-qemu.py: Simplify can_use_kvm()")
581efc6 ("boot-qemu.py: Update unsupported EFI boot message")
3da9dd2 ("github workflows: Switch to new Python linting workflow")
098b8c1 ("Silence module name warnings")
7b8d05b ("boot-qemu.py: Add support for booting arm64 and x86_64 guests under UEFI")
6249ca4 ("Avoid redefining outer names")
58116c5 ("Add explicit check parameter to subprocess.run() calls")
8b5b274 ("Use Popen() in context manager in launch_qemu()")
05b4f3b ("Update 'with open()' in get_smp_value()")
8ebd7cb ("Use read_text() from pathlib in can_use_kvm()")
a7bd42c ("Use 'in' for certain comparisons")
24133b3 ("Use sys.exit() over exit()")
6648443 ("Silence flake8 E251 warnings")
6e80b3b ("boot-qemu.py: Use tuples for Linux and QEMU versions")
a1403e9 ("boot-qemu.py: Combine aarch64 machine flags")
ca70cb3 ("Eliminate calling as_posix() on path objects")
6b30186 ("Switch to f-strings")
604db5b ("boot-qemu.py: Fix get_linux_ver_code() when CONFIG_LOCALVERSION_AUTO is not set")
6a2833c ("boot-qemu: Move from 'powernv8' to 'powernv' machine")
09fd7a3 ("boot-utils: Flush print commands to ensure output is properly ordered")
a0540ce ("boot-utils: Remove skiboot")
d2b3324 ("boot-utils.py: Fix searching for Linux kernel version numbers")
8e7d671 ("boot-uml.py: Fix stray 'i' in decomp_rootfs()")
d23d994 ("boot-qemu.py: Move pretty_print_qemu_cmd() out of try block in launch_qemu()")
312aaef ("boot-qemu.py: Use 'break' instead of 'exit(0)' in launch_qemu()")
9dc0d20 ("boot-qemu.py: print_version_code() -> create_version_code()")
8ba5012 ("boot-qemu.py: Use more specific arguments for can_use_kvm()")
314d18d ("boot-qemu.py: Eliminate unnecessary local variable in can_use_kvm()")
961f440 ("README: Remove stray 'i'")
9883bf8 ("debian: Remove")
aedb4a4 ("README: Rewrite")
7f88af3 ("github: Add yapf step")
6a14843 ("boot-utils: Rewrite core scripts in Python")
e3da2ab ("boot-uml.sh: Remove exec hack")
81fe57a ("boot-qemu.sh: Fix aarch64 KVM after cb0698a")
cb0698a ("boot-qemu.sh: Use implementation defined pointer authentication algorithm")
4dd7e0b ("boot-qemu.sh: Use different CPU for arm64 with new QEMU + old kernel")
2a315cc ("utils.sh: Make get_full_kernel_path() more robust with UML")
9d37a7b ("boot-uml.sh: Add link to issue for 'exec' workaround")
bd4b962 ("boot-utils: Add boot-uml.sh")
80e9a83 ("buildroot: Build an ext4 image for x86_64")
8603a5c ("images: Update")
c51a603 ("buildroot: Upgrade to 2022.02")
11d3e43 ("boot-qemu.sh: arm64: Pass 'lpa2=off' when necessary")
d1daa35 ("boot-qemu.sh: Share version printing code between Linux and QEMU")
e53f47e ("boot-qemu.sh: Add a function to get the kernel version as a number")
4320279 ("boot-qemu.sh: Add a function to get the QEMU version as a number")
5621094 ("boot-qemu.sh: Move kernel image path logic to its own function")
ff6f235 ("boot-qemu.sh: Add a few comments in the arm64 Debian block")
e623485 ("boot-qemu.sh: Use '-smp' for other instances of KVM")
066e331 ("boot-qemu.sh: Clamp '-smp' based on CONFIG_NR_CPUS when available")
0868652 ("boot-qemu.sh: Do not set '-cpu' for 32-bit x86")
49af937 ("debian/build.sh: Update default version to bullseye")
53a74dd ("debian/build.sh: Use 'uname -n' instead of 'hostname'")
da1a94d ("boot-qemu.sh: Add support for booting pmac32_defconfig")
6931ca3 ("boot-qemu.sh: Add 'arm' as an alias for 'arm32_v7'")
ad66a0d ("boot-qemu.sh: Support booting ARMv7 kernels under KVM on AArch64 hosts")
76687ff ("boot-utils: Remove '--use-cbl-qemu'")

containers (GitHub)

9a511dd ("github workflows: Switch to more robust Python linting workflow")
6533047 ("ci/install-vm.py: Disable pylint warning around invalid module name")
4784e52 ("ci/install-vm.py: Switch to f-strings")
533a9f5 ("ci/install-vm.py: Shorten description to avoid flake8 warning")
252785f ("Revert "qemu: Temporarily switch to testing repo for updated QEMU packages"")
879be36 ("qemu: Temporarily switch to testing repo for updated QEMU packages")
0e45694 ("qemu: Install binutils")
978f85d ("github: build-test-llvm-project: Add build-args")
dc4ac4d ("llvm-project: README: Update tag names for new structure")
369b8cb ("llvm-project/Makefile: Add support for building epochs")
afa077c ("llvm-project/Makefile: Allow user to use Podman via DOCKER variable")
c4f312d ("ci/test-clang.sh: Capitalize Docker override variable")
dcc15cd ("github: Make tag specific to architecture")
1a9c882 ("github: Fix llvm-project epoch three workflow for AArch64")
4270003 ("llvm-project: Add a space between '-D' and key + value")
4c4f7a2 ("ci/test-clang.sh: Skip toolchain archive creation when run locally")
3202595 ("ci/test-clang.sh: Add 'z' option to '--volume'")
e055295 ("ci/test-clang.sh: Allow user to use Podman")
7f6804d ("llvm-project: Specify registry for Alpine image")
57e0170 ("github: workflows: Support arm64")
a4a26de ("llvm-project: Make build process architecture agnostic")
ac1cef5 ("ci/configure-vm.sh: Link to "Create self-hosted runner" page")
3b23bc0 ("ci/install-vm.py: Explicitly connect to qemu:///system")
2a75b0e ("github: workflows: Add linting workflow")
9be6c0d ("ci/test-clang-docker.sh: Appease shfmt")
61a1723 ("ci: Add a simple Python script to install virtual machine using libvirt")
c3435a8 ("ci/configure-vm.sh: Appease shfmt")
b06e2b6 ("ci/configure-vm.sh: Add OS checks to update_install_packages()")
3f8c937 ("ci/configure-vm.sh: Check filesystem type before calling xfs_growfs")
0dd7075 ("github: workflows: Switch to self-hosted runners")
f87c1e3 ("github: actions: build-test-llvm-project: Pull images before building")
989e2be ("ci: Add script to configure virtual machine")
5131443 ("Upload toolchain tarball when build is successful")
ebd6906 ("github: workflows: Rename llvm-project workflows")
ccfda3b ("github: Move to a composite action for llvm-project builds")
d0b65f0 ("github: workflows: Shorten 'GitHub Container Registry' to ghcr.io")
4372995 ("github: workflows: Move 'docker login' step to right before image push")
2a61208 ("github: workflows: Space out steps")
50fab28 ("ci/test-clang-docker.sh: Use '--sysroot' for Arch Linux")
162cc51 ("ci/test-clang.sh: Clarify Arch Linux comment")
a6a0b02 ("github: workflows: Run 'docker push' in a separate step")
30f74d6 ("github: workflows: Update Docker actions")
5f2bbad ("ci: Test statically linked clang in Arch Linux containers")
179aaa1 ("ci/test-clang-docker.sh: Add LD_LIBRARY_PATH test")
b8a02d2 ("ci/test-clang.sh: Let docker cp create bin, include, and lib directories")
55125a5 ("ci/test-clang-docker.sh: Define CC and CXX explicitly")
5cc84af ("ci/test-clang.sh: Split docker run command over multiple lines")
22c734e ("ci/test-clang.sh: Use long flag for volume")
33cc658 ("Test statically linked clang outside of Alpine Linux")
d79ebcb ("qemu: Update package list")
9fa1423 ("workflows: Bump actions/checkout to v3")
040e7f8 ("qemu: Install python-yaml")
a5ae59e ("qemu: Install git")

continuous-integration2 (GitHub)

65e2acc ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
9374a7e ("generator.yml: Disable CONFIG_IPMMU_VMSA for OpenSUSE's RISC-V config")
3bc3f5c ("patches: Add patch for CONFIG_DRM_OFDRM=m and CONFIG_FB_OF=y")
1913bdc ("patches: next: Update for next-20221226")
93c4ff9 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
35fdd94 ("patches: next: Add fixes during break")
ef2533b ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
eea1359 ("patches: Drop mainline")
457ddd5 ("patches/stable: Drop x86 vDSO patch")
64ca63e ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
f7a5027 ("patches: Drop android14-5.15, chromeos-5.15, and android-mainline")
9160c4f ("README: Add android14-6.1 to matrix status")
91cc42e ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
fe25476 ("generator.yml: Add android14-6.1")
21a1536 ("patches: Remove 45be2ad007a9c6bea patch from 5.15")
ed98cd4 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
4497a19 ("generator.yml: Re-enable x86_64 allyesconfig for LLVM < 15")
b94a3f6 ("generator.yml: Disable x86_64 allyesconfig with LLVM 15+ on mainline and next")
c920d17 ("patches/mainline: Remove ARM patch")
0a1020b ("patches/mainline: Add fixes for warnings in drivers/staging/media")
2def315 ("boot-utils: Update to latest main")
c32904f ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
764d90f ("generator.yml: Update stable anchor to 6.1")
874edd7 ("generator.yml: Add arm64 kCFI build without LTO to mainline")
7322449 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
076600e ("generator.yml: Re-enable x86_64 KCSAN build on mainline with LLVM ToT")
5647d26 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
f03d0db ("patches: Add x86 vDSO patch for tip of tree ld.lld default change")
110c264 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
5992906 ("generator.yml: Disable x86_64 allyesconfig builds on -tip")
c41893e ("workflows: lint: Use updated Python linting workflow")
633667f ("scripts/markdown-badges.py: Use more specific variable name")
61bbc19 ("Add requirements.txt")
96d2530 ("generate_tuxsuite.py: Rename unused data parameter")
beada58 ("check_logs.py: Remove TODO")
8c68669 ("check_logs.py: Use longer initial build variable name")
686a3b0 ("check_logs.py: Remove len() on list")
47cfa06 ("check_logs.py: Use 'check=True' in print_clang_info()")
b520596 ("check_logs.py: Use 'not in' in fetch_dtb()")
3b82938 ("check_log.py: Eliminate unnecessary pass statements")
5a724ad ("Use f-strings in a few more locations")
dcd3c54 ("utils.py: Raise an exception in get_repo_ref()")
c9c2122 ("scripts/markdown-badges.py: Use .items()")
b4dcc2c ("generate_workflow.py: Switch to sys.exit()")
f108dc0 ("Switch to a literal empty dictionary over dict()")
f28e359 ("Eliminate pylint warning 'consider-using-with'")
b1dc37d ("Eliminate invalid name warnings from pylint")
25852ee ("Add explicit encoding parameter to open()")
7bf6487 ("generate_*.py: Use a shorter initial variable name for llvm_version")
06429bd ("generate_*.py: Use a longer initial variable name for config")
674c7d3 ("get_config() -> get_config_from_generator()")
9b5c992 ("generate_workflow.py: Fix unidiomatic typecheck warning")
754b74f ("scripts/markdown-badges.py: Fix comparisons to None")
7727b4a ("scripts/markdown-badges.py: Place imports on separate lines")
6a04b39 ("generate_*.py: Add another space to 'yapf: disable' comments")
3eb778f ("generate_workflow.py: Remove unused pathlib import")
f49f49b ("check_logs.py: Fix flake8 E713")
804a66d ("patches: android13-5.10: Add upstream series for pahole 1.24 compatability")
66bac28 ("README: Update markdown badges")
2df4a09 ("scripts/markdown-badges.py: Add "Check clang version" badges")
db191db ("scripts: Remove markdown-badges.sh")
47b9ab9 ("ci: Regenerate GitHub Actions workflow files")
86d46c4 ("generate_workflow.py: Move timeout from step to job scope")
2027dfd ("boot-utils: Update to latest main")
49e96e7 ("utils.py: Use f-string for zero-sized exception")
5a4758e ("check_logs.py: Consistently use double quotes")
82b750d ("utils: Eliminate as_posix()")
6aca9c2 ("Use f-strings everywhere")
d51683c ("check_logs.py: Add explicit check for an unknown build result")
47c79a2 ("check_logs.py: Add explicit check for timed out build")
b0a640e ("check_logs.py: Check 'tuxbuild_status' instead of 'result'")
25e2938 ("utils.py: Add a check for an empty builds.json")
1893d9b ("patches: mainline: Drop BPF patch")
d41de32 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
fb9b19d ("generator.yml: Disable LLVM 14 s390 builds on mainline and -next")
5e0bb0a ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
a6b672e ("patches: next: Remove")
9636d17 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
79aa35d ("patches: Drop arm64")
d1e5510 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
16e2698 ("generator.yml: Disable ppc44x_defconfig builds on stable")
374bb59 ("patches/next: Update bpf patch")
d5a99cb ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
5e74e6a ("Revert "generator.yml: Disable OpenSUSE's RISC-V configuration when using GNU as"")
3f47a62 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
53e2932 ("generator.yml: Update stable anchor to linux-6.0.y")
e558c3a ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
c46f318 ("generate_workflow.py: Increase 'tuxsuite plan' timeout limit")
3144e8c ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
624e7fd ("patches: Remove arm64-fixes patches")
67b8868 ("patches: Apply 2120635108b35ecad9c59c8b44f6cbdf4f98214e to arm64 trees")
434c9ae ("patches: Apply patch for bpf recordmcount issue")
f77c340 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
e81fd38 ("generator.yml: CONFIG_KASAN_KUNIT_TEST requires tracing now")
86c5526 ("check_logs.py: Increase attempts to verify build status to 9")
d19b0b2 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
b68b355 ("patches: Rename folders to display name, rather than anchor name")
7d69e40 ("scripts/check-patches.sh: Add a check for invalid patch folders")
a459cc7 ("boot-utils: Update")
78e6f8c ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
56edb14 ("generator.yml: Add x86_64 kCFI and kCFI + LTO builds for mainline")
4398ef5 ("generator.yml: Disable CFI builds for LLVM < 16 in mainline")
26db278 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
e747c00 ("generator.yml: Add x86_64 kCFI and kCFI + LTO builds")
6e4dbac ("generator.yml: Adjust CFI builds")
6fa21d9 ("generator.yml: Disable CFI builds for LLVM < 16 in -next")
08701ae ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
0e1ead7 ("generate_workflow.py: Reduce permissions of GITHUB_TOKEN")
a64adb6 ("boot-utils: Update to latest main")
5d6ea90 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
d94a2d5 ("generator.yml: Disable OpenSUSE's RISC-V configuration when using GNU as")
252fdda ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
f55199f ("patches: tip: Remove drm/amd/display patch")
d6a4476 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
029b661 ("generate_workflow.py: Do not run TuxSuite workflows on pushes to the main branch")
0f01d5f ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
5345902 ("generator.yml: Add Alpine configurations and builds")
fda5b7a ("utils.py: Handle Alpine Linux configurations in get_cbl_name()")
90652bd ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
96341f4 ("Revert "patches: mainline: Apply drm/amd/display patches for dml314"")
0c453d6 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
2bf47d4 ("generator.yml: Enable x86_64 KCSAN build on -next")
91aba15 ("utils.py: Handle OpenSUSE riscv64 configuration in get_cbl_name()")
58ec5d2 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
ed80ab1 ("generator.yml: Add OpenSUSE's riscv64 configuration")
7523c57 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
fc1158b ("patches: mainline: Apply drm/amd/display patches for dml314")
2703f0e ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
f32c5d8 ("Fix location of '--patch-series' in tuxsuite commands")
85f418f ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
ae34aec ("patches: mainline: Drop drm/amd/display patch")
f6d2491 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
40b9b96 ("patches: Remove stable versions of mchp-spdiftx patch")
5831e72 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
d05ee7a ("patches: next: Drop the hack drm/amd/display patch")
5cd9876 ("patches: tip: Drop mchp-spdiftx patch")
5367237 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
332513d ("Revert "generator.yml: Disable CONFIG_PSERIES_PLPKS for Fedora's ppc64le configuration"")
dde7b4b ("patches: mainline: Drop mchp-spdiftx patch")
664a45a ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
59678cb ("generator.yml: Disable x86_64 KCSAN builds for tip of tree LLVM")
d877c5a ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
0114841 ("generator.yml: Disable CONFIG_PSERIES_PLPKS for Fedora's ppc64le configuration")
d6ca216 ("README: Update badges for new workflows")
b72b6e4 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
9cee08a ("generator.yml: Add support for android14-5.15")
694baf5 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
d6f5226 ("generator.yml: Disable CONFIG_WERROR for hexagon allmodconfig")
ed75208 ("patches: arm64: Update mchp-spdiftx.c patch")
9acd7f1 ("Revert "patches: arm64: Add a couple more patches to fix warnings"")
ee5cf01 ("patches: arm64: Add a couple more patches to fix warnings")
9467b04 ("README: Update badges for new workflows")
2a1725b ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
a300efe ("generator.yml: Add support for LLVM 15")
2c4d66a ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
2eeef6f ("generator.yml: Stop disabling CONFIG_WERROR for arm64")
da35570 ("patches: Add mchp-spdiftx.c to arm64 trees")
67d2e4d ("patches: Add mchp-spdiftx.c to -tip trees")
cb78b28 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
1688240 ("patches: Add pending -Wbitfield-constant-conversion mchp-spdiftx.c patch")
7061bdc ("patches: mainline/tip: Drop i915 patch")
ac9be55 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
3568643 ("Revert "generator.yml: Enable CONFIG_PPC_DISABLE_WERROR for powernv_defconfig"")
1024d45 ("patches: mainline: Drop -Wformat patches")
6828e79 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
ea273d8 ("generator.yml: Re-enable boot for ppc44x_defconfig")
0c5fd9a ("generator.yml: Re-enable x86_64 all{mod,yes}config builds on -next with AOSP LLVM")
9c90630 ("generator.yml: Remove commented out s390 builds")
d5bef24 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
b8af734 ("generator.yml: Upgrade stable anchor to 5.19 branch")
eb2995e ("patches: mainline: Add a couple in-flight -Wformat fixes")
b5573cb ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
5ca511d ("patches: Copy mainline to tip")
5b65a9f ("utils.py: Adjust for new builds.json output with 'tuxsuite plan'")
205261e ("patches: next: Drop rtc patch")
ce792ce ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
4ea2e8d ("generator.yml: Disable ppc44x_defconfig builds on mainline and -next")
6ed9b50 ("generator.yml: Enable CONFIG_PPC_DISABLE_WERROR for powernv_defconfig")
62899be ("generator.yml: Fix architecture indentation")
2519a93 ("patches: next: Add a patch for a warning in drivers/rtc/rtc-zynqmp.c")
401f990 ("patches: mainline/next: Add a hack patch for new warnings in AMDGPU")
02177f7 ("patches: mainline: Add patch for i386_defconfig warning")
b74e01c ("boot-utils: Update for another 'boot-qemu.py' fix")
7cb5f24 ("boot-utils: Update to fix 'boot-uml.py'")
77204ed ("ci: Update boot-utils for Python rewrite")
fe49a8b ("README: Fix badges after #389")
7841052 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
617494f ("ci: Update llvm_tot and LLVM_TOT_VERSION")
30bf956 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
8daf93b ("generator.yml: Disable CONFIG_FPE_NWFPE on arm all{mod,yes}config")
149f8b0 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
7048736 ("generator.yml: Stop disabling CONFIG_WERROR on x86_64")
c85da5b ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
26dff9b ("Revert "ci: Disable ChromeOS jobs again"")
6c5400e ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
e5c1331 ("patches/mainline: Drop RISC-V patch")
22dab9a ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
64b5c1d ("ci: Disable ChromeOS jobs again")
ff017c1 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
ff06444 ("patches: Remove -next")
c55e1e9 ("patches: mainline: Drop watchdog patch")
c0985bb ("patches: mainline: Add a fix for ARCH=arm allmodconfig")
f67e556 ("boot-utils: Update")
87dbb5f ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
7a1d9ce ("Revert "Revert "generator.yml: Add support for ChromeOS""")
be74660 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
40ec857 ("patches: Drop objtool patch")
1afbdc4 ("patches: Drop a RISC-V patch")
e2fb795 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
9ddc577 ("patches: Add RISC-V inline asm fixes to mainline and -next")
f51a5b9 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
fd53879 ("generate_workflow.py: Bump GitHub Actions versions")
40d3690 ("patches: 5.15: Fix objtool patch")
4a23068 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
f379b98 ("generator.yml: Apply 0060c1341cf04124a580f0763a8d6b943283828d to mainline")
1cc632e ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
38df0d3 ("generator.yml: Upgrade stable anchor to 5.18 branch")
1ab781e ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
06365e8 ("patches: Add an objtool patch for 5.15 and latest stable")
a1cea16 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
4eca7d1 ("generator.yml: Use the integrated assembler with s390 on -next and mainline")
fe24c46 ("generator.yml: Disable s390 builds for LLVM 13 on -next and mainline")
211e2b2 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
3f90aa4 ("Revert "generator.yml: Add support for ChromeOS"")
010f393 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
cbb5159 ("generate_{tuxsuite,workflow}.py: Consider CrOS configs defconfigs")
4d61fba ("README: Update badges")
0666c84 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
02ff1b5 ("utils.py: Support ChromeOS configs in get_cbl_name()")
f2ef7ca ("generator.yml: Add support for ChromeOS")
a64539d ("boot-utils: Upgrade for implementation defined pointer authentication")
bdc9611 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
a4f0fed ("generator.yml: Build powerpc64le configs with LLVM=1 with LLVM 14")
1d17bdd ("github: workflows: Fix clang-version")
0296cdb ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
0060c13 ("generator.yml: Disable arm64 CFI builds on -next for clang-{12,13}")
543eb60 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
70e65ee ("generator.yml: Build ARCH=hexagon allmodconfig on linux-5.15.y")
e095eac ("scripts/check-patches.sh: Ignore patch files check if patches folder does not exist")
2ed6be9 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
6581187 ("patches: mainline: Remove btrfs patch")
2e612b5 ("ci: Regenerate GitHub Actions workflow files")
6e815e6 ("generate_workflow.py: Add '--ipc=host' to remove 'noexec' from /dev/shm")
e974de4 ("check_logs.py: Fix name of variable in run_boot()")
2952bc3 ("patches: mainline: Drop KVM patch")
a753832 ("patches/mainline: Add btrfs patch")
6f56528 ("check_logs.py: Set execute bit for UML images before running 'boot-uml.sh'")
c3930e3 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
4deee3f ("generator.yml: Enable ARCH=um builds")
c4e2a77 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
4b87e4a ("patches: next: Drop UML patch")
0bbaed9 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
61dbc4a ("generator.yml: Remove Fedora i686 builds")
79f4f51 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
2d75a2d ("generator.yml: Apply a9d8571b91a5b19cd6a48780ed2231938a25283f to mainline")
8876748 ("patches: mainline: Drop PowerPC patches")
092296b ("patches: mainline: Add -Wimplicit-fallthrough fix for KVM")
5615ba8 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
a9d8571 ("generator.yml: Disable ARCH=arm allyesconfig for old LLVM versions on -next")
c80e504 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
c422ff4 ("generator.yml: Disable x86_64 all{mod,yes}config for AOSP LLVM on -next")
3245824 ("generator.yml: Enable disabled ARM builds for AOSP LLVM")
48edb06 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
6cd5336 ("generator.yml: Disable ARCH=um builds for now")
1003132 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
3881b88 ("generator.yml: Boot test ARCH=um kernels")
e4d38d9 ("patches: next: Add patch to fix booting ARCH=um")
97a7d64 ("check_logs.py: Add support for boot-uml.sh")
d045522 ("utils.py: Add support for ARCH=um to get_image_name()")
8e3cc28 ("boot-utils: Update for boot-uml.sh")
d8e2797 ("generator.yml: Add ARCH=um builds")
2fb817f ("generator.yml: Add information for ARCH=um builds")
2d11339 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
d071029 ("generator.yml: Undo 4eec5c448d09646659806afdd42b080a7002620f for stable")
119f2ed ("README.md: Add badges for latest stable release")
41a2523 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
59366d5 ("generator.yml: Add builds for latest stable release")
a3afcfe ("generator.yml: Add anchors for latest stable release")
7529e58 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
cc99069 ("patches: Drop -next")
9207945 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
131a213 ("patches: Drop arm64-fixes")
510aca3 ("boot-utils: Update to latest main branch")
983b029 ("check_logs.py: Use proper syntax for removing problem matcher")
742c039 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
4eec5c4 ("generator.yml: Build powerpc64le configs with LLVM=1 with LLVM ToT")
5954e74 ("patches: mainline: Add patch to drop stabs annotations")
c6bbee7 ("patches: mainline: Add fix for booting ppc64le kernels linked with ld.lld")
49b3aa0 ("patches: next: Drop KVM patch")
47da3fc ("Revert "Merge pull request #321 from nathanchance/ppc64le-llvm-ias"")
27363b0 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
d84502a ("workflows: Bump actions/checkout to v3")
6096efd ("generate_workflow.py: Bump actions/checkout to v3")
3f7574a ("README.md: Update workflow badges with new alternative text")
9a40358 ("scripts/markdown-badges.sh: Make badge alternative text more descriptive")
593ecf6 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
b574dab ("generator.yml: Build powerpc64le configs with LLVM=1 with LLVM ToT")
6489d0c ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
4225417 ("patches: Remove android-4.14")
57763f4 ("patches: next: Drop drm patch")
90ce82e ("patches: next: Replace warning hiding patch with proper fix")
8a223f3 ("ci: Update messages and documentation for scripts move")
cf6640b ("check_logs.py: Fix up script call after scripts move")
5602060 ("ci: Regenerate GitHub Actions workflow files")
1ae2746 ("generator.yml: Build tip and arm64 trees at 6pm UTC")
cbbf405 ("generator.yml: Build Android trees at 6am UTC")
963754b ("generator.yml: Build stable trees at noon UTC")
3d678f0 ("generator.yml: Test certain Linux + clang combinations less often")
745e016 ("generator.yml: Rename daily anchor to daily_midnight")
aca6f15 ("ci: Separate cron schedule by LLVM version")
954e4d5 ("generator.yml: Hoist llvm_version key into llvm_versions entries")
476fcd1 ("ci: Regenerate TuxSuite and workflow files")
1b22e54 ("patches: mainline: Drop netfilter patch")
89b3dd2 ("patches: next: Add a patch to fix build with KVM_WERROR")
317e4a1 ("patches: next: Drop net/netfilter/xt_socket.c patch")
2033059 ("ci: Regenerate GitHub Actions workflow and TuxSuite files")
208c693 ("patches: next: Add a hack patch to hide a warning on Hexagon")
b948bdf ("generator.yml: Disable certain ARM builds with Android LLVM")
343b6df ("patches: next: Add patch for drm_panel_dp_aux_backlight() link failure")
5412a2f ("patches: mainline/next: Add patch for nf_defrag_ipv6_disable() error")
95345f0 ("patches: android-4.14: Revert -O2 linker patch")
1c6961d ("Move shell scripts to scripts/")
4005e87 ("README.md: Update badges for clang-14 workflows")
46850c5 ("ci: Regenerate TuxSuite and workflow files")
7188cf1 ("generator.yml: Add LLVM 13 builds and update llvm_latest to 14")
72ef030 ("README.md: Update badges with markdown-badges.sh")
880fe0f ("markdown-badges.sh: Fix badge syntax")
1723531 ("ci: Regenerate TuxSuite and workflow files")
21f7ff2 ("generate_workflow.py: Include toolchain version in workflow name")
89bcbbb ("README.md: Update badges for new workflow files")
9a7c0c9 ("ci: Regenerate GitHub Actions and TuxSuite files")
3581467 ("ci: Split up generated files by tree and toolchain version")
6e71ae1 ("ci: Write to GitHub Actions and TuxSuite files directly, rather than stdout")
5789276 ("ci: Read from generator.yml rather than stdin")
7e34270 ("README: Update badge order from markdown-badges.sh")
ba47a9d ("markdown-badges.sh: Initial revision")
2cb780d ("generate.sh: Add a '--check' mode")
a9e88e3 ("github: Move matrix-check.yml and patch-check.yml into lint.yml")
be4199a ("ci: Regenerate TuxSuite and workflow files")
04e4375 ("generator.yml: Enable DEBUG_INFO_BTF for Android and Fedora configs")
7251390 ("ci: Regenerate TuxSuite and workflow files")
ee899d0 ("patches: android-mainline: Drop CFI patch")
1cf7ff4 ("ci: Remove 4.4 TuxSuite and workflow files")
ee9ac39 ("generator.yml: Remove 4.4 builds")
0910713 ("ci: Regenerate TuxSuite and workflow files")
583f4c1 ("generator.yml: Update llvm_tot")
dd2c9c7 ("generate.sh: Update LLVM_TOT_VERSION before running Python scripts")
45e4f27 ("ci: Regenerate TuxSuite and workflow files")
3546b40 ("patches: Remove mainline series")
0005c17 ("patches: Remove max20086-regulator.c patch from mainline")
8d0800c ("ci: Regenerate TuxSuite and workflow files")
5d80d87 ("generator.yml: Fix CONFIG_DEBUG_INFO_BTF=n for Fedora configs")
a6de49d ("ci: Regenerate TuxSuite and workflow files")
953e3a3 ("generator.yml: Disable CONFIG_DEBUG_INFO_BTF for Fedora configs")
ccf2b2f ("ci: Regenerate TuxSuite and workflow files")
89b3c45 ("patches: Add blake2s CFI workaround patch for android-mainline")
97614e6 ("ci: Regenerate TuxSuite and workflow files")
ab5b685 ("patches: Add pinctl-thunderbay.c patches to arm64-fixes")
87c5fb0 ("ci: Regenerate TuxSuite and workflow files")
06ac1aa ("generator.yml: Add android13-5.15 builds")
0e87536 ("ci: Regenerate TuxSuite and workflow files")
21107c0 ("generator.yml: Disable CONFIG_DEBUG_INFO_BTF for gki_defconfig")
b62e273 ("ci: Regenerate TuxSuite and workflow files")
f2c1372 ("generator.yml: Enable x86_64 GCOV build with AOSP LLVM")
dba2158 ("ci: Regenerate TuxSuite and workflow files")
09d56fa ("generator.yml: Enable arm64 big endian build on -next with AOSP LLVM")
931d7f0 ("ci: Regenerate TuxSuite and workflow files")
1d78fba ("patches: Drop android12-5.10")
48b1e53 ("patches: mainline: Add a patch for drivers/regulator/max20086-regulator.c")
ec557b2 ("ci: Regenerate TuxSuite and workflow files")
e46d6ae ("patches: Remove tip")
bff9efe ("Revert "patches/mainline: Add a SCSI patch from -next"")
ed03ce9 ("ci: Regenerate TuxSuite and workflow files")
3b585a0 ("patches: Remove -next")
9f2e252 ("patches/mainline: Add a SCSI patch from -next")
b6400a0 ("ci: Regenerate TuxSuite and workflow files")
e8bce11 ("generator.yml: Drop clang-10 builds on mainline")
9bfefd7 ("ci: Regenerate TuxSuite and workflow files")
bf629ee ("check-patches.sh: Check for patches but no '--patch-series'")
2b3ef49 ("patches: Add a series to fix ARCH=arm64 with mainline and next")
8b06b10 ("Revert #274")
9df6888 ("ci: Regenerate TuxSuite and workflow files")
fc94669 ("patches: Apply hack patch to fix the build on android-mainline")
f82da84 ("ci: Regenerate TuxSuite and workflow files")
7f679ba ("patches: Drop 5.15 and 5.10")
9aa4361 ("ci: Regenerate TuxSuite and workflow files")
2422dbd ("patches: Drop mainline and next")
1492aca ("patches: android12-5.10: Add patch to fix Thumb2 kernel boot on newer QEMU")
6fd8ef0 ("README: Remove lto-cfi{,-tip} badges")
519183c ("ci: Remove CFI workflow files")
8c6643d ("generator.yml: Remove CFI tree builds")

tc-build (GitHub)

ceaeaac ("build-binutils.py: Disable internationalization unconditionally")
ae85dae ("build-binutils.py: Disable gprofng on musl-based distros")
9c908bb ("build-binutils.py: Unwrap option lists and use unpacking for appending")
6ae8372 ("build-llvm.py: Disable COMPILER_RT_BUILD_GWP_ASAN when execinfo.h is not present")
30a0244 ("build-llvm.py: Fix using relative paths for folders")
219c476 ("utils.py: Make create_gitignore() even simpler")
f2c4182 ("build-binutils.py: Dynamically figure out good hash")
2b448da ("tc-build: Stop building the gold plugin")
977cde6 ("workflows: lint: Use updated Python linting workflow")
457d148 ("Refactor some subprocess.run() calls to use variable for command")
522c6bf ("build-llvm.py: Add encoding parameter to open() in do_bolt()")
b1f4ad7 ("build-llvm.py: Remove unnecessary self assignment")
356b8e4 ("build-llvm.py: Avoid clashing function name")
1a038ed ("build-llvm.py: Use .items() and list comprehension in invoke_cmake()")
8144211 ("build-llvm.py: Simplify get_final_stage()")
f051eb9 ("build-llvm.py: Use 'check=True' in ref_exists()")
1ef55f4 ("build-llvm.py: Use request.urlopen() as a context manager")
1135eb7 ("build-llvm.py: Use sys.exit() instead of exit()")
85054c1 ("build-llvm.py: Rewrite linker_test()")
b890dc0 ("build-llvm.py: Adjust imports for pylint")
5c0a71f ("utils.py: Clean up remaing variable warnings from pylint")
465b0c4 ("build-binutils.py: Remove unnecessary elif after return")
aab3bfe ("Silence pylint invalid warning for module names")
b6dcc8b ("utils.py: Remove unused pathlib import")
ab83755 ("build-llvm.py: Fix bare except in can_use_perf()")
1a2ddd4 ("build-llvm.py: Fix 'in' expression in stage_specific_cmake_defines()")
b62fedf ("build-llvm.py: Use raw string in versioned_binaries()")
a911995 ("build-llvm.py: Use f-strings in more places")
67f18bf ("build-llvm.py: Eliminate os.path usage")
c49e8b4 ("Eliminate all calls to as_posix()")
c100cde ("Switch to f-strings")
47839bf ("build-binutils.py: Add ability to skip installing")
c1cbd22 ("build-binutils.py: Allow alternative binutils source locations")
9a2ee87 ("build-binutils.py: Use pathlib exclusively")
f515296 ("build-llvm.py: Update known good revision")
a551717 ("kernel: Update to Linux 6.0")
94737df ("kernel: Add patch to fix ARCH=arm allmodconfig with latest LLVM")
ca7cf65 ("kernel/build.sh: ppc64le and s390 can use the integrated assembler")
7bca2a2 ("kernel/build.sh: s390 cannot be built with LLVM < 14.0.0")
eecd43c ("kernel/build.sh: Make llvm_version a global variable")
155311e ("kernel/build.sh: Use pmac32_defconfig for 32-bit PowerPC builds")
0807d27 ("build-llvm.py: Adjust BOLT + PGO warning for upstream fix")
82fa6d2 ("build-llvm.py: Fix 'LLVM source location does not exist' error message")
390e4fe ("tc-build: Flush print commands to ensure output is properly ordered")
64206be ("utils.py: Update binutils to 2.39")
0c73e12 ("kernel/build.sh: Include kernel version in "building kernels" header")
e6a5f02 ("kernel/build.sh: Fix header")
f7c343d ("ci.sh: Use release/14.x for testing")
9d7b675 ("kernel/build.sh: Support all*config for Hexagon, RISC-V, and s390")
27aea0a ("kernel/build.sh: Update style")
6f0c46a ("ci.sh: Update style")
17f8f1f ("build-llvm.py: Add LLVM_DEFAULT_TARGET_TRIPLE when possible")
3ac781a ("build-llvm.py: Update known good revision")
0347e9a ("kernel: Update to Linux 5.18")
3466af8 ("build-llvm.py: Introduce "slim" PGO")
1b2cc13 ("build-llvm.py: Add a note about LLVM commit 7d7771f34d14 for BOLT")
b8ef75c ("tc-build: Initial BOLT support")
a68e42e ("build-llvm.py: Dynamically link the instrumented stage against libLLVM")
42a879e ("build-llvm.py: Update known good revision")
b2b28ad ("kernel: Update to Linux 5.17")
a2500db ("workflows: Bump actions/checkout to v3")
d8e5196 ("build-llvm.py: Update known good revision")
22c3211 ("kernel: Update to Linux 5.16")
42bd8c3 ("build-llvm.py: Appease new yapf")

TuxMake

0c76477 ("docker: clang-android: Update to r475365b (16.0.2)")
969446d ("docker: clang-android: Update to r458507 (15.0.1)")
6a573a6 (".gitlab-ci.yml: Wire up Arch Linux integration tests")
d21087b ("test/integration: Look for Arch Linux's shunit2")
f9b1fa9 ("ci: Wire up Arch Linux package building")
7090583 ("fakelinux: Don't let CFLAGS leak in from environment")
976972c ("metadata: os: Fallback to /usr/lib/os-release")
1da1876 ("docker: clang-android: Update to r450784e (14.0.7)")
2235eb5 ("docker: clang-android: Update to r450784d (14.0.6)")
b8f7902 ("docker: clang-android: Update to r450784b (14.0.4)")
a9cdf03 ("docker: clang-android: Update to r450784")
99d0ac9 ("docker: clang-android: Update to r445002")
80e373b ("docker: clang-android: Update to r437112b")

Behind the scenes

There are always things that require time but do not always show tangible results. There are three things that I think fall under this category:

  • Issue tracker management: Keeping a clean and accurate issue tracker is critical for few reason.
    1. It gives a good high level overview of the “health” of the project. We want our issue tracker to be an accurate representation of how much help we need (since we always need it…)
    2. It helps assign priority to certain issues. If we have a lot of open but resolved issues, it can be hard to decide what needs to be worked on next.
    3. The issue tracker is a wonderful historical reference. We use the issue tracker to keep track of mailing list posts and such so it is important that those links are as acccurate as possible and have as much information as possible in case we have to look back five years later to wonder why we did something the way that we did.
  • Mailing list reading: We are not Cc’d on every issue related to clang, even though sometimes it is the compiler’s problem or a known difference between the toolchains that we have already figured out. By monitoring the mailing list for certain phrases, we can provide assistance without being initially notified, which developers do appreciate.
  • Hardware testing: Every linux-next release, I built and boot kernels on a variety of hardware to test for issues, as some problems only show up on bare metal or with a full distribution. I now have a script to drive a full distribution QEMU on a variety of architectures to make some of that testing and debugging easier but bare metal is always an important testing target, since that is where the kernel will run the majority of the time.

Special thanks

Special thanks to Google and the Linux Foundation for sponsoring my work. I am in a very fortunate position thanks to the work of many great and suppportive folks at those organizations and I look forward to continuing to contribute under this umbrella for 2023!

To view individual monthly reports, click on one of the links below: