summaryrefslogtreecommitdiff
path: root/tools/testing
AgeCommit message (Collapse)Author
2026-09-26selftests/ftrace: skip gcov symbols when picking a function to probeEva Kurchatova
kprobe_eventname.tc takes the last kallsyms entry whose name ends in vfs_read and puts a probe on it. On a kernel built with CONFIG_GCOV_PROFILE_ALL=y the counter symbol gcc emits for the function sorts after it: ffffffff819bd1e0 T vfs_read ffffffff845013e0 t __gcov_.vfs_read so the test picks __gcov_.vfs_read, which is not a function entry, and the write fails: kprobe_eventname.tc: line 10: echo: write error: Invalid argument Leave those symbols out of the choice. The test then picks vfs_read and passes; without a coverage build nothing changes, as no such symbol exists there. This is the same class of problem as commit 23a4b108accc ("tracing/selftests: Fix kprobe event name test for .isra. functions"), where a compiler-generated symbol was picked instead of a real function. Link: https://lore.kernel.org/r/20260925133558.3636030-1-eva.kurchatova@virtuozzo.com Signed-off-by: Eva Kurchatova <eva.kurchatova@virtuozzo.com> Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2026-09-26selftests/resctrl: Enable dynamic management of IMC counters via linked listYifan Wu
Remove the static array and the count and upper limit checks during initialization, allowing the system to dynamically use all available IMC counters detected by hardware. Link: https://lore.kernel.org/r/20260801092429.533956-4-wuyifan50@huawei.com Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: Yifan Wu <wuyifan50@huawei.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2026-09-26selftests/resctrl: Replace counter index references with pointersYifan Wu
Replace direct counter number references with pointers to remove the dependency on fixed array indexing and enable the use of different data structures for counter management. Link: https://lore.kernel.org/r/20260801092429.533956-3-wuyifan50@huawei.com Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: Yifan Wu <wuyifan50@huawei.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2026-09-26selftests/resctrl: Introduce linked list management for IMC countersYifan Wu
The static array approach to managing IMC counters has fixed size constraints and limited compatibility and scalability. Introduce a linked list-based dynamic management infrastructure to address these limitations. Add the core data structure definitions and memory allocation and cleanup functions for dynamic counter configurations. Link: https://lore.kernel.org/r/20260801092429.533956-2-wuyifan50@huawei.com Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: Yifan Wu <wuyifan50@huawei.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2026-09-26cgroup/cpuset: Return PERR_NOCPUS in remote_partition_enable() on ↵Hui Peng
subpartitions_cpus conflict When a remote partition is created underneath an existing local partition via a non-partition (PRS_MEMBER) intermediate cgroup, update_prstate() sees parent->partition_root_state == PRS_MEMBER and calls remote_partition_enable(). Commit 86888c7bd117 ("cgroup/cpuset: Add warnings to catch inconsistency in exclusive CPUs") replaced the cpumask_intersects(tmp->new_cpus, subpartitions_cpus) error check in remote_partition_enable() with WARN_ON_ONCE(). As a result, remote_partition_enable() emits a warning and proceeds to enable the remote partition on CPUs that are already owned by the ancestor local partition in subpartitions_cpus. This can be reproduced on Linux 7.3.0-rc3 with: mkdir -p /tmp/cg1 mount -t cgroup2 none /tmp/cg1 echo "+cpuset" > /tmp/cg1/cgroup.subtree_control mkdir /tmp/cg1/A echo 1 > /tmp/cg1/A/cpuset.cpus echo 1 > /tmp/cg1/A/cpuset.cpus.exclusive echo root > /tmp/cg1/A/cpuset.cpus.partition echo "+cpuset" > /tmp/cg1/A/cgroup.subtree_control mkdir /tmp/cg1/A/B echo 1 > /tmp/cg1/A/B/cpuset.cpus echo 1 > /tmp/cg1/A/B/cpuset.cpus.exclusive echo "+cpuset" > /tmp/cg1/A/B/cgroup.subtree_control mkdir /tmp/cg1/A/B/D echo 1 > /tmp/cg1/A/B/D/cpuset.cpus echo 1 > /tmp/cg1/A/B/D/cpuset.cpus.exclusive echo root > /tmp/cg1/A/B/D/cpuset.cpus.partition which triggers: WARNING: kernel/cgroup/cpuset.c:1594 at remote_partition_enable+0x1c1/0x300 and leaves both /tmp/cg1/A and /tmp/cg1/A/B/D as active root partitions claiming exclusive CPU 1. Fix this by returning PERR_NOCPUS when tmp->new_cpus intersects subpartitions_cpus in remote_partition_enable(), matching the error code used by remote_cpus_update() for the same subpartitions_cpus conflict, and add a regression test case to tools/testing/selftests/cgroup/test_cpuset_prs.sh. Tested in QEMU on Linux 7.3.0-rc3 using the reproducer above and tools/testing/selftests/cgroup/test_cpuset_prs.sh. Fixes: 86888c7bd117 ("cgroup/cpuset: Add warnings to catch inconsistency in exclusive CPUs") Suggested-by: Guopeng Zhang <guopeng.zhang@linux.dev> Cc: stable@vger.kernel.org Assisted-by: LLM Signed-off-by: Hui Peng <benquike@gmail.com> Reviewed-by: Waiman Long <longman@redhat.com> Signed-off-by: Tejun Heo <tj@kernel.org>
2026-09-26Merge tag 'probes-fixes-v7.3-rc4' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace Pull probe fixes from Masami Hiramatsu: - kprobes: Fix permanent hang when flushing the kprobe optimizer Fix a deadlock when disabling kprobe optimization via sysctl or debugfs where flushers hung waiting for optimizer_completion. Replaced the completion with an optimizer_passes counter and wait_var_event_mutex() under kprobe_mutex so concurrent flushers can wait and wake up safely. - fprobe: Terminate the fgraph_data list when the reservation is not filled Fix an issue where unused shadow stack data left uninitialized by fprobe_fgraph_entry() was misparsed as stale fprobe headers on return. Explicitly write a zero word to terminate the list and update read_fprobe_header() to handle the zeroed slot properly. - ftracetest: Fix unique symbol check in kprobe_non_uniq_symbol.tc Fix false test failures in kprobe_non_uniq_symbol.tc on architectures like s390 where a symbol exists once in core kernel but also in modules. Anchor the /proc/kallsyms search regex to the end of the line so that module symbols are not incorrectly counted. * tag 'probes-fixes-v7.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: kprobes: Fix permanent hang when flushing the kprobe optimizer fprobe: Terminate the fgraph_data list when the reservation is not filled selftests/ftrace: Fix unique symbol check in kprobe_non_uniq_symbol.tc
2026-09-26Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvmLinus Torvalds
Pull kvm fixes from Paolo Bonzini: "Arm: - Invalidate the ITS translation cache when the guest changes the base address of the ITS tables (Fuad Tabba) - Skip saving ITS devices with device IDs that are out-of-bounds rather than failing the entire ITS save ioctl (Fuad Tabba) - Close race between VM teardown and invalidations of nested MMUs when handling MMU operations that are allowed to block (Lorenzo Stoakes) - Various fixes for the handling of the host's untrusted SVE configuration in pKVM (Fuad Tabba) - Make sure that empty SMCCC ranges based at 0 are rejected by the kvm_smccc_set_filter() (Karl Mehltretter) - Revoke the host mapping for pKVM's private stack pages, along with a new sanity check that all mappings in the hyp's private VA range have been correctly marked as hyp-owned (Fuad Tabba) - Lifetime fixes for the array of shadow stage-2 MMUs, ensuring that concurrent vCPU initialization cannot relocate in-use MMUs. Defer the freeing of shadow stage-2 MMUs to the point that no other users (e.g. MMU notifier) could reference them (Marc Zyngier) - Drop useless WARN when rejecting an unsupported ioctl for pKVM (Fuad Tabba) - Fix the steal_time selftest to install correctly-sized mappings for non-4K hosts (Sebastian Ott) - Correct mapping of fine-grained trap for GCSPOPX instruction (Mark Brown) - Fix KVM_BUG_ON() due to missing handling of DBGBXVR<n> from 32-bit guests (Karl Mehltretter) RISC-V: - Synchronize hrtimer during VCPU teardown - Fix the conversion between vsip and hvip values - Serialize IMSIC attributes with vCPU migration - Release unused page after MMU invalidation - Propagate interrupted G-stage faults to KVM user-space as EINTR - Fix nested acceleration hfence entry update order - Fix sdata leak and stale snapshot_addr in snapshot_set_shmem - Preserve firmware counter value across PMU counter stop/start - Report PMU snapshot write failure to the guest - Fix perf-backed counter accounting across PMU stop and read - Correctly propagate error of a hart status SBI call s390: - Ensure that accesses through kvm_arch_set_irq_inatomic mark as dirty the pages that contain indicator and summary bits - Fix compile warning for kvm_s390_update_cmma_dirty() - Fix incorrect propagation of ENOENT from _gaccess_shadow_fault() to userspace - Move s390_kvm_mmu_commit_memory_region() into s390_kvm_mmu_prepare_memory_region() so that it can fail instead of WARN - Add missing srcu in kvm_s390_set_irq_state() - Fix potential races in storage functions - Fix race in _destroy_pages_crste() - Fix issues in the handling of KVM interrupt and page resources, when a queue that is assigned to a mediated device (mdev) is removed from the host's AP configuration - Fix loop condition in uv_find_secrets - Prevent potential out-of-bounds read x86: - Fix a brown paper bag bug where KVM would incorrectly treat Intel PMU MSRs as valid on AMD - Fix a regression in the hardware disable selftest where it checked the wrong macro when detecting glibc support (breaks at least musl) - Never clear KVM_REQ_VM_DEAD so that dead VMs stay dead, which is especially important for KVM_BUG_ON() flows, which often guard more dangerous bugs - Re-pend GET_NESTED_STATE_PAGES if getting the pages fails, to fix a bug where KVM would let userspace run a broken setup with stale vmcs12 pages - Fix a class of bugs where KVM would fail to fill kvm_run exit fields if getting nested pages failed - Treat reserved entries in the memory attributes xarray as "no attributes", to fix false positives when checking for mixed attributes - Fix memcg accounting for the memory attributes xarray (the xarray library subtly requires the xarray to be configured for accounting upfront; the gfp flags taken at runtime are used only rarely) - Don't pre-reserve xarray entries when storing empty attributes, as storing NULL must not require memory allocation (KVM and other subsystems heavily rely on this behavior) - Fix a memory leak and a cache maintenance issue related to doing intra-host migration on an SEV guest" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (54 commits) KVM: SEV: Do cache maintenance on the source VM during intra-host migration KVM: SEV: Free have_run_cpus during VM destruction even if VM is no longer SEV KVM: Don't pre-reserve xarray entries when storing empty/NULL attributes KVM: Ensure memory attributes xarray nodes are accounted to the caller's memcg KVM: Don't treat reserved xarray entries as having memory attributes KVM: x86: Fill kvm_run exit fields in common get_nested_state_pages() error paths KVM: x86: Re-pend GET_NESTED_STATE_PAGES if getting said pages fails KVM: arm64: Fix AArch32 DBGBXVR<n> handling KVM: arm64: Fix FGT mapping for HFGITR_EL2.nGCSEPP KVM: selftests: fix steal_time for arm64 with host page size > 4K KVM: arm64: Don't WARN on an unknown VM ioctl in protected mode KVM: arm64: nv: Delay freeing of shadow S2 structures until VM destruction KVM: arm64: nv: Fix life cycle of the nested_mmus array KVM: arm64: Check every private mapping is hyp-owned at pKVM init KVM: arm64: Move the private VA allocation cursor to __io_map_next KVM: arm64: Match hyp text by physical address in fix_host_ownership() KVM: arm64: Transfer the hyp stack pages out of the host stage-2 KVM: arm64: selftests: Test empty SMCCC filter range at base 0 KVM: arm64: Return -EINVAL for an empty SMCCC filter range at base 0 KVM: arm64: Derive GUEST_HAS_SVE from the SVE feature bit at EL2 ...
2026-09-26selftests/filesystems: check that a dead mount's overmount isn't followedChristian Brauner
Add overmount_reparent_test: - a mount that a file descriptor keeps alive after propagate_umount() reparented its overmount and unmounted it must not be walked into the freed overmount by move_mount(MOVE_MOUNT_BENEATH) Link: https://patch.msgid.link/20260926-work-mount-fixes-2-v1-10-f357abf3d17b@kernel.org Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-09-26selftests/filesystems: check that an unmounted mount tree isn't walkedChristian Brauner
Add unmounted_tree_test: - a detached nsfs or pidfs bind mount that a file descriptor keeps alive can't be copied recursively, a copy of the mount itself and a copy of a mounted one still work - a detached tree with a child that was vacated behind it can't be copied recursively either - a copy of a detached bind mount is an ordinary mount: unlinking its mountpoint from another mount namespace unmounts it - mount_setattr() refuses to change the propagation of a detached tree and still allows it for the root of an anonymous mount namespace Every case runs in a user and mount namespace of its own. Link: https://patch.msgid.link/20260926-work-mount-fixes-2-v1-9-f357abf3d17b@kernel.org Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-09-26selftests/bpf: Fix gcc -Wreturn-type error in the tail call subprog testDaniel Borkmann
gcc's C front end warns for a static function returning non-void that has no return statement at all, regardless of the for (;;) {} it ends in, and BPF CI builds test_progs-bpf_gcc with -Werror: progs/verifier_cfg.c: In function 'tail_call_or_throw_subprog': error: no return statement in function returning non-void [-Werror=return-type] Add an unreachable return after the loop. # LDLIBS=-static PKG_CONFIG='pkg-config --static' ./vmtest.sh -- ./test_progs -t verifier_cfg [...] #626/21 verifier_cfg/tail call in a subprogram without an exit:OK #626 verifier_cfg:OK Summary: 1/21 PASSED, 0 SKIPPED, 0/0 FAILED Fixes: 5add2c64f474 ("selftests/bpf: Add a test for a tail call in a subprogram without an exit") Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/r/20260926113835.1193471-1-daniel@iogearbox.net Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
2026-09-26selftests/bpf: Add linked_externs test for externs in allocated sectionsAndrii Nakryiko
Add two objects that define an arena global each and declare the other one's as extern, linked into a single skeleton with the extern-declaring object first. The skeleton build relinks the linked object twice more, which fixes up DATASEC offsets from the ELF symbol table, so the test also drives the libbpf linker directly: it links linked_arena1.bpf.o on its own, links the result with linked_arena2.bpf.o, checks that no variable in the .addr_space.1 DATASEC is left extern, and loads the object. The same is done with linked_maps1/2.bpf.o, which have an extern map in .maps. Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260926000243.2830819-2-andrii@kernel.org
2026-09-26tools/nolibc: add 64-bit parisc supportThomas Weißschuh
Extend the existing parisc support to also handle 64-bit mode. Some peculiarities: * The nonstandard ftruncate64 system call requires a workaround. * The linker defaults to main() as entry point, which needs to be switched to _start() explicitly. * The linker defaults to dynamic linking, which needs to be disabled explicitly. * With the default -Os, gcc does not use 64-bit multiplication instructions, requiring libgcc. Use -O2 instead. * There is no qemu-user available. * CONFIG_COMPAT needs to be disabled to avoid build errors due to a missing 32-bit vDSO compiler. Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Link: https://patch.msgid.link/20260914-nolibc-parisc64-v3-1-f14b320117c1@weissschuh.net
2026-09-26selftests/nolibc: test the FD_* macrosDanish Khateeb
The only test that uses the FD_* macros passes fd 1, so nothing noticed that they used the wrong bits for fds 31-63 of each word on 64-bit architectures. Check that FD_SET() and FD_CLR() change exactly one fd, for every fd below FD_SETSIZE. Assisted-by: LLM Signed-off-by: Danish Khateeb <danishkhateeb03@gmail.com> Link: https://patch.msgid.link/20260925211600.119116-4-danishkhateeb03@gmail.com Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
2026-09-26KVM: selftests: Verify that L0's TPR doesn't get clobberedSean Christopherson
Signed-off-by: Sean Christopherson <seanjc@google.com> Message-ID: <20260813223610.2043560-5-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2026-09-26KVM: selftests: Run the nested x2APIC with and without APICv being inhibited ↵Sean Christopherson
in L2 Signed-off-by: Sean Christopherson <seanjc@google.com> Message-ID: <20260813223610.2043560-4-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2026-09-26KVM: selftests: Add x2APIC MSR test for inhibiting APICv while nestedSean Christopherson
Add a selftest to verify that KVM intercepts x2APIC MSR accesses for L1 after APICv is inhibited while L2 is active. This is a regression test for an AVIC bug where KVM would skip updating x2APIC MSR intercepts while L2 is active, thus giving L1 access to a wide swath of L0's x2APIC surface. Signed-off-by: Sean Christopherson <seanjc@google.com> Message-ID: <20260710162052.2188574-3-seanjc@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2026-09-26Merge tag 'kvm-x86-fixes-7.3-rc5' of https://github.com/kvm-x86/linux into HEADPaolo Bonzini
KVM fixes for 7.3-rcN - Fix a brown paper bag bug where KVM would incorrectly treat Intel PMU MSRs as valid on AMD. - Fix a regression in the hardware disable selftest where it checked the wrong macro when detecting glibc support (breaks at least musl). - Never clear KVM_REQ_VM_DEAD so that dead VMs stay dead, which is especially important for KVM_BUG_ON() flows, which often guard more dangerous bugs. - Re-pend GET_NESTED_STATE_PAGES if getting the pages fails, to fix a bug where KVM would let userspace run a broken setup with stale vmcs12 pages. - Fix a class of bugs where KVM would fail to fill kvm_run exit fields if getting nested pages failed. - Treat reserved entries in the memory attributes xarray as "no attributes", to fix false positives when checking for mixed attributes. - Fix memcg accounting for the memory attributes xarray (the xarray library subtly requires the xarray to be configured for accounting upfront; the gfp flags taken at runtime are used only rarely). - Don't pre-reserve xarray entries when storing empty attributes, as storing NULL must not require memory allocation (KVM and other subsystems heavily rely on this behavior).
2026-09-25selftests: drivers: net: check the host and device RSS keysEric Dumazet
Add a selftest under tools/testing/selftests/drivers/net/rss_key.py checking both the host RSS key (/proc/sys/net/core/netdev_rss_key) and the RSS key, indirection table, and flow-hash layouts reported by a device over ethtool netlink. When invoked without NETIF, NetDrvEnv creates a 4-queue netdevsim device, which calls netdev_rss_key_fill() and allows exercising both the host key and the netlink RSS reporting path in a virtual machine without special hardware. When invoked with NETIF, it checks the key and indirection table of that interface. Signed-off-by: Eric Dumazet <edumazet@google.com> Link: https://patch.msgid.link/20260922163458.3900996-5-edumazet@google.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-09-25selftests/bpf: Test program stream file descriptorsKumar Kartikeya Dwivedi
Exercise validation and normal file semantics of BPF_PROG_STREAM_OPEN. Cover read-only and close-on-exec state, write and lseek rejection, non-blocking reads, partial reads, poll readiness, and a blocking reader woken by new stream data. Also check that an empty stream write produces neither readable data nor poll readiness. Register the descriptor with EPOLLET, consume the initial data event without draining buffered output, then release the program. Require a second edge carrying POLLIN and POLLHUP, drain the buffered bytes, and verify that poll continues to report HUP before read returns EOF. This ensures program teardown notifies edge-triggered loops even when readability never transitions. Notifications are only sent when an empty stream turns readable, so also consume the first edge of an edge-triggered descriptor, leave part of the output behind while more arrives, drain the stream and require a new edge for output published afterwards. This covers the transition that re-arms notifications once readers, including partial ones, bring the count back to zero. Also block a reader on an empty live stream, release the program, and verify that it wakes and returns EOF. This directly covers the teardown wait condition and its no-lost-wakeup ordering. Finally, attach a stream-writing program to a hardware perf event and busy-poll its epoll registration until output arrives. This both drives the per-thread event into NMI context and directly verifies that the deferred irq_work notification reaches epoll, without a separate BSS completion handshake. Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260925045536.1480933-6-memxor@gmail.com
2026-09-25selftests/bpf: Add a test for an exception callback behind a dead subprogDaniel Borkmann
Add a test where a static subprogram only called from dead code sits in front of the exception callback, so that its removal compacts subprog_info[] underneath the callback's index. # LDLIBS=-static PKG_CONFIG='pkg-config --static' ./vmtest.sh -- ./test_progs -t exceptions [...] #129/119 exceptions/exception_cb_behind_dead_subprog:OK #129 exceptions:OK Summary: 1/119 PASSED, 0 SKIPPED, 0/0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260925175244.1136329-17-daniel@iogearbox.net
2026-09-25selftests/bpf: Add tests for gotox targets across prologue prependsDaniel Borkmann
Add tests to the bpf_insn_array suite for a gotox whose jump table points at the first instruction of a subprogram. # LDLIBS=-static PKG_CONFIG='pkg-config --static' ./vmtest.sh -- ./test_progs -t bpf_insn_array [...] #27/19 bpf_insn_array/gotox-target-prologue-shift:OK #27/20 bpf_insn_array/gotox-target-ctx-prologue-shift:OK #27 bpf_insn_array:OK Summary: 1/20 PASSED, 0 SKIPPED, 0/0 FAILED As small nit, cleanup the extra whitespaces between subtests. Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Anton Protopopov <a.s.protopopov@gmail.com> Link: https://patch.msgid.link/20260925175244.1136329-16-daniel@iogearbox.net
2026-09-25selftests/bpf: Add a test for gotox nop targetsDaniel Borkmann
Add a test to the verifier_gotox suite which exercises a gotox target which is a ja +0, and checks that the nop removal pass keeps it. # LDLIBS=-static PKG_CONFIG='pkg-config --static' ./vmtest.sh -- ./test_progs -t verifier_gotox [...] #644/33 verifier_gotox/jump_table_target_nop:OK #644 verifier_gotox:OK Summary: 1/33 PASSED, 0 SKIPPED, 0/0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260925175244.1136329-15-daniel@iogearbox.net
2026-09-25selftests/bpf: Add tests for indirect jumps across subprogramsDaniel Borkmann
Add various gotox corner case tests for indirect jumps across subprograms, and one where two subprograms only called from dead code sit in front of the one owning a jump table, so that their removal compacts subprog_info[] along with the tables. # LDLIBS=-static PKG_CONFIG='pkg-config --static' ./vmtest.sh -- ./test_progs -t bpf_insn_array,verifier_gotox [...] #27/10 bpf_insn_array/gotox-jt-spans-subprogs:OK #27/11 bpf_insn_array/gotox-jt-spans-with-own-table:OK #27/12 bpf_insn_array/gotox-target-other-subprog:OK #27/13 bpf_insn_array/gotox-jt-per-subprog:OK #27/14 bpf_insn_array/gotox-jt-dead-subprogs:OK #27/15 bpf_insn_array/gotox-target-subprog-from-main:OK #27/16 bpf_insn_array/gotox-index-slice-other-subprog:OK #27/17 bpf_insn_array/gotox-target-other-global-subprog:OK #27/18 bpf_insn_array/gotox-callback-leaves-subprog:OK #27 bpf_insn_array:OK [...] #644 verifier_gotox:OK Summary: 2/50 PASSED, 0 SKIPPED, 0/0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260925175244.1136329-14-daniel@iogearbox.net
2026-09-25selftests/bpf: Add a test for a tail call in a subprogram without an exitDaniel Borkmann
Add a test with a subprogram which leaves through a tail call or a bpf_throw() and never reaches an exit insn, so that the hidden edge of the tail call has no exit to point at. The subprogram accesses its stack, so that the liveness pass walks it. # LDLIBS=-static PKG_CONFIG='pkg-config --static' ./vmtest.sh -- ./test_progs -t verifier_cfg [...] #624/21 verifier_cfg/tail call in a subprogram without an exit:OK #624 verifier_cfg:OK Summary: 1/21 PASSED, 0 SKIPPED, 0/0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260925175244.1136329-13-daniel@iogearbox.net
2026-09-25selftests/bpf: Add tests for the indirect jump edge limitDaniel Borkmann
Add tests for the indirect jump edge limit to the verifier_gotox suite: two programs whose gotox instructions are their own jump table targets, one in a single subprogram and one split across two, exceed the limit and are rejected, and a chain of gotox which sits exactly at the limit still loads and runs. # LDLIBS=-static PKG_CONFIG='pkg-config --static' ./vmtest.sh -- ./test_progs -t verifier_gotox [...] #644/30 verifier_gotox/too-many-gotox-edges:OK #644/31 verifier_gotox/gotox-edges-at-limit:OK #644/32 verifier_gotox/gotox-edges-across-subprogs:OK #644 verifier_gotox:OK Summary: 1/32 PASSED, 0 SKIPPED, 0/0 FAILED Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260925175244.1136329-12-daniel@iogearbox.net
2026-09-25bpf: Reject indirect jumps that leave their subprogramDaniel Borkmann
The jump table of a subprog is collected in compute_subprog_jts() from the insn_array maps of the program, and a map is attributed to the subprog that contains its first entry. check_indirect_jump() instead resolves the targets from the map the gotox register actually points to, bounded only by the index range of that register, and never relates them back to the subprog of the gotox. The two disagree, so bpf_insn_successors() reports a subset of the edges the BPF program can take and a gotox can enter a subprog the CFG never walked. Close both ends: reject a map that reaches past the subprog holding its first entry right when it is collected in compute_subprog_jts(), so that every map of a program with a gotox is confined to one subprog, and confine the resolved targets of a gotox to its subprog in check_indirect_jump(). A target inside the subprog is then always in the jump table the CFG walked, which is the invariant that actually has to hold. The out-of-range check in visit_gotox_insn() cannot fire any more once every table is confined and becomes a verifier_bug_if(). Fixes: 493d9e0d6083 ("bpf, x86: add support for indirect jumps") Reported-by: James Burton <jamesburton@meta.com> Reported-by: Nuoqi Gui <gnq25@mails.tsinghua.edu.cn> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Anton Protopopov <a.s.protopopov@gmail.com> Acked-by: Eduard Zingerman <eddyz87@gmail.com> Link: https://patch.msgid.link/20260925175244.1136329-7-daniel@iogearbox.net
2026-09-25selftests/resctrl: Skip L3_CAT when no exclusive cache portion existsRichard Cheng
L3_CAT requires an exclusive cache portion to test cache allocation. This means that the cache portion used by the test can't overlap with cache portions into which other agents may allocate. Some platforms legitimately report every cache portion as shareable, leaving no exclusive cache portion for the test and causing L3_CAT to fail. Skip the L3_CAT when the platform has no exclusive cache portion that the test can use. Link: https://lore.kernel.org/r/20260821003908.12977-1-icheng@nvidia.com Tested-by: Chen Yu <yu.c.chen@intel.com> Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com> Signed-off-by: Richard Cheng <icheng@nvidia.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
2026-09-25selftests/x86: Add tests for signal frame FPU portabilityAndrei Vagin
Add a new selftest tools/testing/selftests/x86/sigframe_fpu_portability.c to verify signal frame portability and consistency when the xstate size is shrunk: - test_valid_shrunk_xstate_size: Verifies that the kernel correctly restores the xstate context from a signal frame where xstate_size has been manually shrunk to only cover active features, as long as the FP_XSTATE_MAGIC2 marker is correctly placed. This simulates migrating a process created on a host with fewer xstate features to a host with more features. - test_invalid_shrunk_xstate_size: Verifies that the kernel rejects (via SIGSEGV) a signal frame where xstate_size is smaller than required by the enabled features in the xfeatures mask. Signed-off-by: Andrei Vagin <avagin@google.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Alexander Mikhalitsyn <alexander@mihalicyn.com> Reviewed-by: Chang S. Bae <chang.seok.bae@intel.com> Link: https://patch.msgid.link/20260925162454.1403405-8-avagin@google.com
2026-09-25Merge tag 'vfs-7.3-rc5.fixes' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs Pull vfs fixes from Christian Brauner: - Revert "put_mnt_ns(): leave mounts connected". This allows the creation of reference count cycles in a very trivial way. We can't bring this in until we have fixed the underlying cause - vfs: Don't create the private nullfs instance for kthreads under namespace_sem to avoid false lockdeps complaints - binfmt_misc: - Copy the name into a stack buffer and look up the copy in bpf_binprm_select_interp() - bpf_binprm_set_interp() and bpf_binprm_set_interp_arg(): Check the private copy instead so the string that gets staged is the kstring that was checked - netfs: - Make netfs_read_gaps() use separate sink folios rather than one reused sink folio to discard unwanted data so that cifs checksum checking sees all the data that was fetched - Trim reads down to i_size so afs symlinks read correctly from the cache - Wrap the direct mempool ->alloc() calls the GFP_KERNEL paths make in alloc_hooks() via a new mempool_alloc_noreserve() helper - iov_iter: Use iov_iter_alignment() for the start and length check added to iov_iter_extract_bvecs() this cycle. It used iter_iov_addr() and iter_iov_len() which are only valid for ITER_UBUF and ITER_IOVEC iterators - super: Make iterate_supers_type() deletion-safe - inode: Stop evict_inodes() from rescanning the same inodes - writeback: Bound the cleanup_offline_cgwb() rescans - ntfs3: Use d_instantiate_new() in ntfs_create_inode() - ovl: Fix a use-after-free in the ovl_do_mkdir() debug print - dcache: Unpoison the inline name buffer in __d_alloc() for KMSAN - autofs: Fix a pipe file reference leak in autofs_kill_sb() - bpf: Drop the path_unlink and path_rmdir hooks from the list of hooks for which the verifier rewrites bpf_{set,remove}_dentry_xattr() to the _locked variants - squashfs: Range check the xz dictionary size before shifting by it - selftests: Add the missing eventfd, open_tree_ns, openat2 and xattr filesystems selftests to TARGETS and drop the stale openat2 entry left behind when those tests moved * tag 'vfs-7.3-rc5.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: netfs: Fix missing alloc tagging of direct mempool allocations bpf: fs/xattr: don't assume the inode is locked in path_unlink/path_rmdir autofs: fix sbi->pipe file reference leak in autofs_kill_sb() dcache: unpoison the inline name buffer in __d_alloc() ovl: fix UAF in ovl_do_mkdir() debug print super: make iterate_supers_type() deletion-safe Revert "put_mnt_ns(): leave mounts connected" Revert "selftests/filesystems: add mntns cleanup test" binfmt_misc: fix racy checks in bpf set_interp kfuncs binfmt_misc: fix OOB read in bpf_binprm_select_interp() fs: don't create the private nullfs mount under namespace_sem writeback: bound cleanup_offline_cgwb() rescans by rotating scanned inodes fs: avoid repeated scans in evict_inodes() netfs, afs: Fix symlink reading netfs: Fix netfs_read_gaps() to use separate sink folios squashfs: Add dictionary size range check to prevent shift-out-of-bounds fs/ntfs3: use d_instantiate_new() in ntfs_create_inode() and murder syzbot's "WARNING in do_new_mount" saga selftests/filesystems: fix missing and stale TARGETS entries block: Fix start and length check added to iov_iter_extract_bvecs()
2026-09-25selftests/filesystems: check that a busy propagated copy blocks a ↵Christian Brauner
synchronous umount A slave namespace moves an open_tree() copy of the shared tree beneath the propagated copy of the victim and keeps the descriptor. Check that: - umount(2) of the victim fails with EBUSY while the descriptor is open - the moved tree is still attached in the slave namespace afterwards - the umount succeeds once the descriptor is closed The test needs CAP_SYS_ADMIN and skips otherwise. Link: https://patch.msgid.link/20260923-work-mount-fixes-v1-6-f424cf8d3242@kernel.org Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-09-25selftests/move_mount_set_group: check that an unbindable target is refusedChristian Brauner
MOVE_MOUNT_SET_GROUP must not accept an unbindable mount as the target. Cover both sources: - a slave, which used to leave the target unbindable and a slave at once - a shared mount, which used to silently drop the unbindable flag Check that the target is untouched after the refused call. Link: https://patch.msgid.link/20260923-work-mount-fixes-v1-4-f424cf8d3242@kernel.org Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-09-25selftests/filesystems: check that a copied mount namespace keeps unbindableChristian Brauner
Make a tmpfs unbindable, copy the mount namespace and check from the copy that: - a bind of the mount fails with EINVAL - a recursive bind fails as well - open_tree(OPEN_TREE_CLONE) of it fails - mountinfo still shows it as unbindable - a copy of the copy refuses the bind too The first case runs in the original namespace so the fixture stays honest about what it set up. Link: https://patch.msgid.link/20260923-work-mount-fixes-v1-2-f424cf8d3242@kernel.org Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-09-25vfio: selftests: Extend timeout for runner executionsAlex Williamson
When executed via the runner, ie. run_kselftest.sh, tests are subject to a default 45s timeout. None of the igb, ioatdma, or nv_falcon drivers can run the vfio_pci_driver_test within this window. The igb driver is the worst due to the device getting wedged from bad DMAs in mix_and_match and requiring the full transaction pending delay prior to FLR. This is even further exacerbated when the system implements firmware-first error handling and the transaction pending scheduled delays are preempted beyond expectations by SMIs. Worst case observed runtime for the whole vfio_pci_driver_test on such a setup is 450s. Round up to 600s. Assisted-by: LLM Reviewed-by: David Matlack <dmatlack@google.com> Signed-off-by: Alex Williamson <alex.williamson@nvidia.com> Link: https://lore.kernel.org/r/20260911170429.1642480-5-alex.williamson@nvidia.com Signed-off-by: Alex Williamson <alex@shazbot.org>
2026-09-25vfio: selftests: Extend mix_and_match timeout to 90sAlex Williamson
Systems with firmware first error handling can see heavy SMM load as a result of the mix_and_match induced IOMMU errors. For devices like igb that get wedged on these errors, the resulting FLR is delayed waiting for the transaction pending register to clear, which never occurs. However, due to the background SMM, the backoff delays in PCI code wildly exceed their timeouts. As a result, the whole test can report failure. Extend the mix_and_match timeout to a value shown to complete reliably on such systems, with ~2x margin. Assisted-by: LLM Reviewed-by: David Matlack <dmatlack@google.com> Signed-off-by: Alex Williamson <alex.williamson@nvidia.com> Link: https://lore.kernel.org/r/20260911170429.1642480-4-alex.williamson@nvidia.com Signed-off-by: Alex Williamson <alex@shazbot.org>
2026-09-25selftests: sysctl: Check the sign of a negative jiffies readZhan Xusheng
proc_int_k2u_conv_kop() returns the sign through *negp and the magnitude through *u_ptr. For a negative value it used to convert the sign-extended int and negate afterwards, so the magnitude came back as a wrapped 64-bit number. Nothing noticed, because no test wrote a negative value to a jiffies sysctl. Write one to each of the three int converters and require the value to read back unchanged. Each value is chosen to convert exactly at every CONFIG_HZ, so the test does not depend on it: converter write jiffies stored reads back jiffies -1 -HZ -1 ms_jiffies -1000 -HZ -1000 userhz_jiffies -100 -HZ -100 On a kernel without the fix, at CONFIG_HZ=250: # int_jiffies: got '-18372957097414713411', want '-1' # int_ms_jiffies: got '-18446744069414585320', want '-1000' # int_userhz_jiffies: got '-18446742229035144346', want '-100' not ok 1 test_int_jiffies_negative (paths shortened; the runner prints them under /proc/sys/debug/test_sysctl) Signed-off-by: Zhan Xusheng <zhanxusheng@xiaomi.com> Reviewed-by: Bradley Morgan <brads@mainlining.org> Tested-by: Bradley Morgan <brads@mainlining.org> Signed-off-by: Joel Granados <joel.granados@kernel.org>
2026-09-25selftests/filesystems/openat2: make /tmp a mountpoint inside private namespaceDisha Goel
In resolve_test.c, the test unshares the mount namespace and attempts to make /tmp private via: mount("", "/tmp", "", MS_PRIVATE, "") This fails with EINVAL on environments where /tmp is not already a separate mount point (e.g. if /tmp is just a standard directory on the root filesystem /). Furthermore, the resolve_no_xdev test relies on crossing into /tmp to verify RESOLVE_NO_XDEV and trigger an -EXDEV error. If /tmp is not a mount point, resolving /tmp never crosses a mount boundary, leading to a test failure. Fix this by: 1. Making the entire root directory recursively private (MS_PRIVATE | MS_REC) after unsharing the mount namespace. 2. Performing a self-bind-mount of /tmp on /tmp inside the isolated private mount namespace, which guarantees that /tmp is a separate mount point and that resolving /tmp will cross a mount boundary as expected by the test. Signed-off-by: Disha Goel <disgoel@linux.ibm.com> Link: https://patch.msgid.link/20260917095707.16986-2-disgoel@linux.ibm.com Tested-by: andy_gao <andy23320@yahoo.com> Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-09-25selftests/filesystems/openat2: fix O_LARGEFILE definitions for non-arm64 ↵Disha Goel
architectures The openat2_test.c code previously hardcoded O_LARGEFILE to 0x8000 on all architectures other than arm64 (aarch64). However, on several architectures this value is different. For example, on PowerPC (including ppc64le), O_LARGEFILE is defined as 0x10000, whereas 0x8000 is actually O_NOFOLLOW. This mismatch caused the flag_validation test case to pass O_PATH | O_NOFOLLOW instead of O_PATH | O_LARGEFILE. Since O_PATH | O_NOFOLLOW is a valid and compatible flag combination, the kernel successfully opened the file instead of failing with -EINVAL, causing a false test failure on PowerPC. Fix this by introducing proper architecture-specific definitions for O_LARGEFILE matching their respective UAPI asm/fcntl.h values. Signed-off-by: Disha Goel <disgoel@linux.ibm.com> Link: https://patch.msgid.link/20260917095707.16986-1-disgoel@linux.ibm.com Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
2026-09-25selftests/bpf: Test helper read of a narrow stack spillHao Sun
Spill a 32-bit scalar into an 8-byte stack slot, leaving the other half of the slot uninitialized. With CAP_BPF but without CAP_PERFMON the verifier rejects the helper's read. Signed-off-by: Hao Sun <sunhao.th@gmail.com> Link: https://lore.kernel.org/bpf/20260925082814.1554771-2-sunhao.th@gmail.com Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
2026-09-25selftest/hid: add test for negative return codes for hid_bpf_hw_requestBenjamin Tissoires
If the transport driver returns an error, we should ensure we actually get the error, not a success value. Acked-by: Jiri Kosina <jkosina@suse.com> Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
2026-09-25selftests/bpf: Test non-fetch atomic on a narrow stack spillHao Sun
Spill a 32-bit scalar into an 8-byte stack slot, leaving the other half of the slot uninitialized, and apply a non-fetch 64-bit atomic add to the slot. With CAP_BPF but without CAP_PERFMON the verifier rejects it. Signed-off-by: Hao Sun <sunhao.th@gmail.com> Link: https://lore.kernel.org/bpf/20260924131342.934290-2-sunhao.th@gmail.com Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
2026-09-25selftests/bpf: Add tests for iterator created anew in its loopAlexei Starovoitov
Add progs that destroy and create the iterator inside its loop with and without a prune point in front of bpf_iter_num_next(). All of them should be rejected. Nested bpf_for() loops, where the inner iterator is created in every iteration of the outer loop, should load. Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260924233130.1213812-9-alexei.starovoitov@gmail.com
2026-09-25selftests/bpf: Add tests for may_goto with far targetAlexei Starovoitov
Generate syscall progs with may_goto that jumps up to 32767 insns forward and 32768 insns backward. The prog loops until may_goto expires and returns 0 when it lands on the target. Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260924233130.1213812-7-alexei.starovoitov@gmail.com
2026-09-25selftests/bpf: Add tests for pc-relative insn copied into its own patchAlexei Starovoitov
Add tests for may_goto in a subprog that starts with a call or with ld_imm64 of a func located in front of it, and for nospec inserted in front of such call. Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260924233130.1213812-5-alexei.starovoitov@gmail.com
2026-09-25selftests/bpf: Add test for timed may_goto with private stackAlexei Starovoitov
Run fentry progs with 64 and 128 bytes of stack that loop until may_goto expires. Check that r0-r5 are intact after the loop and that it made more than 65535 iterations. Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260924233130.1213812-3-alexei.starovoitov@gmail.com
2026-09-24KVM: selftests: Add nested pre-fault test for arm64Lorenzo Stoakes (ARM)
Add an arm64 nested-virtualisation selftest for KVM_PRE_FAULT_MEMORY. The guest enters vEL2, sets up its EL2 translation configuration into the real EL1 registers then ERETs to vEL1 and exits to userspace so its vCPU last-run context is nested backed by a shadow stage 2 MMU. The test then asserts that pre-faulting ignores that and instead targets the canonical stage 2 page tables only. Userspace cannot observe a mistargeted pre-fault, so simply assert that the pre-faulting works correctly when the last-run context was nested. Based on a patch by Jack Thomson with gratitude. The test here is simplified and focused on what can be asserted. Link: https://lore.kernel.org/kvmarm/20260612162354.73378-6-jackabt.amazon@gmail.com/ Reviewed-by: Oliver Upton <oupton@kernel.org> Signed-off-by: Lorenzo Stoakes (ARM) <ljs@kernel.org> Tested-by: Fuad Tabba <fuad.tabba@linux.dev> Link: https://patch.msgid.link/20260923-kvm-arm-prefault-v4-14-d4b0b4dfa8c3@kernel.org Signed-off-by: Marc Zyngier <maz@kernel.org>
2026-09-24KVM: selftests: Add option for different backing in pre-fault testsJack Thomson
Add a -s option to specify different memory backing types for the pre-fault tests (e.g. anonymous, hugetlb), allowing testing of the pre-fault functionality across different memory configurations. Signed-off-by: Jack Thomson <jackabt@amazon.com> Reviewed-by: Oliver Upton <oupton@kernel.org> Signed-off-by: Lorenzo Stoakes (ARM) <ljs@kernel.org> Reviewed-by: Fuad Tabba <fuad.tabba@linux.dev> Tested-by: Fuad Tabba <fuad.tabba@linux.dev> Link: https://patch.msgid.link/20260923-kvm-arm-prefault-v4-13-d4b0b4dfa8c3@kernel.org Signed-off-by: Marc Zyngier <maz@kernel.org>
2026-09-24KVM: selftests: Enable pre_fault_memory_test for arm64Jack Thomson
Enable the pre_fault_memory_test to run on arm64 by making it work with different guest page sizes and testing multiple guest configurations. Add an assert on the exit reason, comparing against UCALL_EXIT_REASON so the check is portable, as arm64 exits with KVM_EXIT_MMIO while x86 uses KVM_EXIT_IO. [ljs: merge conflict resolution with commit c847704619da ("KVM: selftests: Fix pre_fault_memory_test to run on s390"), commit message accuracy fixup] Signed-off-by: Jack Thomson <jackabt@amazon.com> Reviewed-by: Oliver Upton <oupton@kernel.org> Signed-off-by: Lorenzo Stoakes (ARM) <ljs@kernel.org> Reviewed-by: Fuad Tabba <fuad.tabba@linux.dev> Tested-by: Fuad Tabba <fuad.tabba@linux.dev> Link: https://patch.msgid.link/20260923-kvm-arm-prefault-v4-12-d4b0b4dfa8c3@kernel.org Signed-off-by: Marc Zyngier <maz@kernel.org>
2026-09-24Merge tag 'sched_ext-for-7.3-rc4-fixes' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext Pull sched_ext fixes from Tejun Heo: - A task reenqueued while its dispatch was still completing had its queued state clobbered by the dispatcher, dropping every later dispatch of the task. Wait for the in-flight dispatch to settle first - A wakeup activation on another CPU marked the destination runqueue as mid-wakeup, stranding a pending local reenqueue. If the scheduler was unloaded first, the stale request pointed into freed memory that the next scheduler dereferenced - ops.dequeue() ran with the source dispatch queue's lock held, so a scheduler iterating that queue from the callback deadlocked the CPU - Schedulers with their own CPU ID mapping had no way to learn a task's initial CPU mask and rebuilt it themselves, which went wrong across sub-scheduler enable and re-home. Pass it to ops.enable() - A bypass dispatch event counter missed the dispatches made by the end-of-dispatch fallback and under-reported - Selftests for the dequeue locking and initial mask changes * tag 'sched_ext-for-7.3-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext: sched_ext: Count SCX_EV_SUB_BYPASS_DISPATCH in the dispatch fallback selftests/sched_ext: Check the cmask cid-form ops.enable() receives sched_ext: Pass the initial cmask to cid-form ops.enable() selftests/sched_ext: Test that ops.dequeue() can iterate the consumed DSQ sched_ext: Don't run ops.dequeue() with a DSQ lock held sched_ext: Derive SCX_RQ_IN_WAKEUP from the core enqueue flags sched_ext: Wait for SCX_OPSS_DISPATCHING before reenqueueing a task
2026-09-24Merge tag 'cgroup-for-7.3-rc4-fixes' of ↵Linus Torvalds
git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup fixes from Tejun Heo: - With local event accounting, a fork rejected by the pids controller updated pids.events without notifying its pollers - A cgroup selftest failed to compile with fortification enabled because an O_TMPFILE open lacked its mode argument * tag 'cgroup-for-7.3-rc4-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: cgroup/pids: Restore pids.events notifications in local mode selftests: cgroup: give the O_TMPFILE open in get_temp_fd() a mode
2026-09-24selftests/bpf: Run callx prog_tests onceAlexei Starovoitov
prog_tests/tests.h is generated from 'void test_*(void)' definitions. callx_func_ptr_map.c and callx_rodata_lskel.c define the test twice, under #if and under #else, so both tests are registered and run twice: DEFINE_TEST(callx_func_ptr_map) DEFINE_TEST(callx_func_ptr_map) DEFINE_TEST(callx_rodata_lskel) DEFINE_TEST(callx_rodata_lskel) Make both definitions static and call them from a single test function. Fixes: b018e998e645 ("selftests/bpf: Add tests for callx through pointers in read-only data") Signed-off-by: Alexei Starovoitov <ast@kernel.org> Link: https://patch.msgid.link/20260924182533.281399-1-alexei.starovoitov@gmail.com