linux/tools/testing/selftests
Samiullah Khawaja e6d7626881 net: Update threaded state in napi config in netif_set_threaded
Commit 2677010e77 ("Add support to set NAPI threaded for individual
NAPI") added support to enable/disable threaded napi using netlink. This
also extended the napi config save/restore functionality to set the napi
threaded state. This breaks netdev reset for drivers that use napi
threaded at device level and also use napi config save/restore on
napi_disable/napi_enable. Basically on netdev with napi threaded enabled
at device level, a napi_enable call will get stuck trying to stop the
napi kthread. This is because the napi->config->threaded is set to
disabled when threaded is enabled at device level.

The issue can be reproduced on virtio-net device using qemu. To
reproduce the issue run following,

  echo 1 > /sys/class/net/threaded
  ethtool -L eth0 combined 1

Update the threaded state in napi config in netif_set_threaded and add a
new test that verifies this scenario.

Tested on qemu with virtio-net:
 NETIF=eth0 ./tools/testing/selftests/drivers/net/napi_threaded.py
 TAP version 13
 1..2
 ok 1 napi_threaded.change_num_queues
 ok 2 napi_threaded.enable_dev_threaded_disable_napi_threaded
 # Totals: pass:2 fail:0 xfail:0 xpass:0 skip:0 error:0

Fixes: 2677010e77 ("Add support to set NAPI threaded for individual NAPI")
Signed-off-by: Samiullah Khawaja <skhawaja@google.com>
Link: https://patch.msgid.link/20250804164457.2494390-1-skhawaja@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-08-05 17:46:15 -07:00
..
acct
alsa
amd-pstate
arm64 arm64 updates for 6.17: 2025-07-29 20:21:54 -07:00
bpf bpf-next-6.17 2025-07-30 09:58:50 -07:00
breakpoints selftests: breakpoints: use suspend_stats to reliably check suspend success 2025-07-10 14:21:30 -06:00
cachestat
capabilities
cgroup Generic: 2025-06-02 12:24:58 -07:00
clone3 selftests/pidfd: fixes syscall number defines 2025-03-25 14:59:05 +01:00
connector
core
coredump vfs-6.17-rc1.coredump 2025-07-28 11:50:36 -07:00
cpu-hotplug selftests/cpu-hotplug: fix typo in hotplaggable_offline_cpus function name 2025-06-17 14:12:16 -06:00
cpufreq kselftest: cpufreq: Get rid of double suspend in rtcwake case 2025-05-09 12:43:39 -06:00
damon selftests/damon/_damon_sysfs: skip testcases if CONFIG_DAMON_SYSFS is disabled 2025-05-31 22:46:15 -07:00
devices
dma
dmabuf-heaps
drivers net: Update threaded state in napi config in netif_set_threaded 2025-08-05 17:46:15 -07:00
dt
efivarfs
exec
fchmodat2
filelock
filesystems selftests/kernfs: test xattr retrieval 2025-07-02 14:18:22 +02:00
firmware
fpu
ftrace selftests/tracing: Fix false failure of subsystem event test 2025-07-24 15:52:20 -06:00
futex Update for the futex subsystem: 2025-07-29 14:39:42 -07:00
gpio selftests: gpio: gpio-aggregator: add a test case for _sysfs prefix reservation 2025-04-14 22:30:01 +02:00
hid selftests: net: Enable legacy netfilter legacy options. 2025-07-25 18:38:55 +02:00
ia64
intel_pstate
iommu iommufd/selftest: Fix build warnings due to uninitialized mfd 2025-06-24 15:45:13 -03:00
ipc selftests: ipc: Replace fail print statements with ksft_test_result_fail 2025-06-17 14:45:05 -06:00
ir
kcmp
kexec selftests/kexec: fix test_kexec_jump build 2025-07-22 15:10:52 -06:00
kmod lib/test_kmod: do not hardcode/depend on any filesystem 2025-05-11 17:54:09 -07:00
kselftest printf: convert self-test to KUnit 2025-03-13 10:26:33 -07:00
kselftest_harness selftests: harness: Add kselftest harness selftest 2025-05-21 15:32:27 +02:00
kvm arm64 updates for 6.17: 2025-07-29 20:21:54 -07:00
landlock selftests/landlock: Add test to check rule tied to covered mount point 2025-06-19 13:55:41 +02:00
lib lib/prime_numbers: KUnit test should not select PRIME_NUMBERS 2025-04-15 13:50:43 -07:00
livepatch Livepatching changes for 6.15 2025-03-27 19:26:10 -07:00
lkdtm stackleak: Rename STACKLEAK to KSTACK_ERASE 2025-07-21 21:35:01 -07:00
locking
lsm
media_tests
membarrier
memfd
memory-hotplug
mincore 31 hotfixes. 9 are cc:stable and the remainder address post-6.15 issues 2025-04-16 20:07:32 -07:00
mm selftests/mm: fix split_huge_page_test for folio_split() tests 2025-07-19 19:26:16 -07:00
module
mount
mount_setattr selftests/mount_setattr: adapt detached mount propagation test 2025-06-07 00:41:29 -04:00
move_mount_set_group
mqueue
mseal_system_mappings selftest: test system mappings are sealed 2025-04-01 15:17:16 -07:00
nci selftests: nci: Fix "Electrnoics" to "Electronics" 2025-05-20 18:13:43 -07:00
net selftests: net: packetdrill: xfail all problems on slow machines 2025-08-04 17:21:44 -07:00
nolibc selftests/nolibc: add x32 test configuration 2025-07-13 16:58:41 +02:00
ntb
openat2
pci_endpoint misc: pci_endpoint_test: Add support for PCITEST_IRQ_TYPE_AUTO 2025-03-26 06:11:54 +00:00
pcie_bwctrl selftests/pcie_bwctrl: Fix test progs list 2025-04-18 08:23:22 -05:00
perf_events selftests/perf_events: Fix spelling mistake "sycnhronize" -> "synchronize" 2025-04-29 13:35:55 -06:00
pid_namespace selftests: pid_namespace: add missing sys/mount.h include in pid_max.c 2025-05-09 13:12:33 -06:00
pidfd linux_kselftest-next-6.17-rc1 2025-07-29 12:48:53 -07:00
power_supply
powerpc powerpc updates for 6.15 2025-03-27 19:39:08 -07:00
prctl
proc
pstore
ptp testptp: add option to enable external timestamping edges 2025-06-23 13:32:14 +01:00
ptrace selftests/ptrace: Fix spelling mistake "multible" -> "multiple" 2025-06-18 14:22:55 -06:00
rcutorture rcutorture: Fix issue with re-using old images on ARM64 2025-05-16 11:15:34 -04:00
resctrl
ring-buffer
riscv selftests: riscv: fix v_exec_initval_nolibc.c 2025-04-01 07:03:04 +00:00
rlimits
rseq rseq/selftests: Fix namespace collision with rseq UAPI header 2025-03-19 21:26:24 +01:00
rtc rtc: remove 'setdate' test program 2025-04-01 15:25:15 +02:00
rust
safesetid
sched sched/debug: Remove CONFIG_SCHED_DEBUG from self-test config files 2025-03-19 22:23:24 +01:00
sched_ext selftests/sched_ext: Fix exit selftest hang on UP 2025-07-03 06:44:13 -10:00
seccomp selftests: seccomp: Fix "performace" to "performance" 2025-05-20 13:16:39 -07:00
sgx
signal
size
sparc64
splice
static_keys
sync
syscall_user_dispatch selftests: Add tests for PR_SYS_DISPATCH_INCLUSIVE_ON 2025-06-13 18:36:39 +02:00
sysctl sysctl: Nixify sysctl.sh 2025-07-23 11:56:02 +02:00
tc-testing selftests/tc-testing: Add selftests for qdisc DualPI2 2025-07-23 17:52:08 -07:00
tdx
thermal/intel selftests: fix some typos in tools/testing/selftests 2025-05-11 17:54:13 -07:00
timens selftests/timens: timerfd: Use correct clockid type in tclock_gettime() 2025-05-09 13:12:57 -06:00
timers selftests/timers: Improve skew_consistency by testing with other clockids 2025-03-21 19:16:18 +01:00
tmpfs
tpm2 selftests: tpm2: test_smoke: use POSIX-conformant expression operator 2025-04-08 14:56:13 -06:00
tty
turbostat
ublk selftests: ublk: add utils.h 2025-07-15 08:04:17 -06:00
uevent
user_events
vDSO selftests: vDSO: vdso_standalone_test_x86: Replace source file with symlink 2025-07-01 15:50:43 +02:00
vsock selftests/vsock: add initial vmtest.sh for vsock 2025-06-11 13:17:59 -07:00
watchdog
wireguard selftests: net: Enable legacy netfilter legacy options. 2025-07-25 18:38:55 +02:00
x86 selftests/x86: Add a test to detect infinite SIGTRAP handler loop 2025-06-09 08:52:06 -07:00
zram
.gitignore selftests: tpm2: create a dedicated .gitignore 2025-04-08 14:56:13 -06:00
gen_kselftest_tar.sh
kselftest_deps.sh
kselftest_harness.h selftests: harness: Stop using setjmp()/longjmp() 2025-05-21 15:32:37 +02:00
kselftest_install.sh
kselftest_module.h
kselftest.h Revert "selftests: kselftest: Fix build failure with NOLIBC" 2025-02-26 22:13:48 +01:00
lib.mk selftests: Add headers target 2025-03-03 20:00:12 +01:00
Makefile nolibc changes for v6.17 2025-07-29 15:32:02 -07:00
run_kselftest.sh selftests/run_kselftest.sh: Use readlink if realpath is not available 2025-05-15 16:52:47 -06:00