# git rev-parse -q --verify 8f7c8b88bda4988f44e595a760438febf51c92c8^{commit} 8f7c8b88bda4988f44e595a760438febf51c92c8 already have revision, skipping fetch # git checkout -q -f -B kisskb 8f7c8b88bda4988f44e595a760438febf51c92c8 # git clean -qxdf # < git log -1 # commit 8f7c8b88bda4988f44e595a760438febf51c92c8 # Merge: 7586d5276515 6b8950ef993b # Author: Linus Torvalds # Date: Wed Nov 20 10:08:00 2024 -0800 # # Merge tag 'sched_ext-for-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext # # Pull sched_ext updates from Tejun Heo: # # - Improve the default select_cpu() implementation making it topology # aware and handle WAKE_SYNC better. # # - set_arg_maybe_null() was used to inform the verifier which ops args # could be NULL in a rather hackish way. Use the new __nullable CFI # stub tags instead. # # - On Sapphire Rapids multi-socket systems, a BPF scheduler, by # hammering on the same queue across sockets, could live-lock the # system to the point where the system couldn't make reasonable forward # progress. # # This could lead to soft-lockup triggered resets or stalling out # bypass mode switch and thus BPF scheduler ejection for tens of # minutes if not hours. After trying a number of mitigations, the # following set worked reliably: # # - Injecting artificial cpu_relax() loops in two places while # sched_ext is trying to turn on the bypass mode. # # - Triggering scheduler ejection when soft-lockup detection is # imminent (a quarter of threshold left). # # While not the prettiest, the impact both in terms of code complexity # and overhead is minimal. # # - A common complaint on the API is the overuse of the word "dispatch" # and the confusion around "consume". This is due to how the dispatch # queues became more generic over time. Rename the affected kfuncs for # clarity. Thanks to BPF's compatibility features, this change can be # made in a way that's both forward and backward compatible. The # compatibility code will be dropped in a few releases. # # - Other misc changes # # * tag 'sched_ext-for-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext: (21 commits) # sched_ext: Replace scx_next_task_picked() with switch_class() in comment # sched_ext: Rename scx_bpf_dispatch[_vtime]_from_dsq*() -> scx_bpf_dsq_move[_vtime]*() # sched_ext: Rename scx_bpf_consume() to scx_bpf_dsq_move_to_local() # sched_ext: Rename scx_bpf_dispatch[_vtime]() to scx_bpf_dsq_insert[_vtime]() # sched_ext: scx_bpf_dispatch_from_dsq_set_*() are allowed from unlocked context # sched_ext: add a missing rcu_read_lock/unlock pair at scx_select_cpu_dfl() # sched_ext: Clarify sched_ext_ops table for userland scheduler # sched_ext: Enable the ops breather and eject BPF scheduler on softlockup # sched_ext: Avoid live-locking bypass mode switching # sched_ext: Fix incorrect use of bitwise AND # sched_ext: Do not enable LLC/NUMA optimizations when domains overlap # sched_ext: Introduce NUMA awareness to the default idle selection policy # sched_ext: Replace set_arg_maybe_null() with __nullable CFI stub tags # sched_ext: Rename CFI stubs to names that are recognized by BPF # sched_ext: Introduce LLC awareness to the default idle selection policy # sched_ext: Clarify ops.select_cpu() for single-CPU tasks # sched_ext: improve WAKE_SYNC behavior for default idle CPU selection # sched_ext: Use btf_ids to resolve task_struct # sched/ext: Use tg_cgroup() to elieminate duplicate code # sched/ext: Fix unmatch trailing comment of CONFIG_EXT_GROUP_SCHED # ... # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/or1k-linux/bin/or1k-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/or1k-linux/bin/or1k-linux-ld --version # < git log --format=%s --max-count=1 8f7c8b88bda4988f44e595a760438febf51c92c8 # make -s -j 160 ARCH=openrisc O=/kisskb/build/linus_or1ksim_defconfig_or32-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/or1k-linux/bin/or1k-linux- or1ksim_defconfig # < make -s -j 160 ARCH=openrisc O=/kisskb/build/linus_or1ksim_defconfig_or32-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/or1k-linux/bin/or1k-linux- help # make -s -j 160 ARCH=openrisc O=/kisskb/build/linus_or1ksim_defconfig_or32-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/or1k-linux/bin/or1k-linux- olddefconfig # make -s -j 160 ARCH=openrisc O=/kisskb/build/linus_or1ksim_defconfig_or32-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/or1k-linux/bin/or1k-linux- Completed OK # rm -rf /kisskb/build/linus_or1ksim_defconfig_or32-gcc13 # Build took: 0:01:21.480340