kernel_samsung_a53x/tools/testing/selftests
Amit Cohen 988bb5ed8f selftests: forwarding: devlink_lib: Wait for udev events after reloading
[ Upstream commit f67a90a0c8f5b3d0acc18f10650d90fec44775f9 ]

Lately, an additional locking was added by commit c0a40097f0bc
("drivers: core: synchronize really_probe() and dev_uevent()"). The
locking protects dev_uevent() calling. This function is used to send
messages from the kernel to user space. Uevent messages notify user space
about changes in device states, such as when a device is added, removed,
or changed. These messages are used by udev (or other similar user-space
tools) to apply device-specific rules.

After reloading devlink instance, udev events should be processed. This
locking causes a short delay of udev events handling.

One example for useful udev rule is renaming ports. 'forwading.config'
can be configured to use names after udev rules are applied. Some tests run
devlink_reload() and immediately use the updated names. This worked before
the above mentioned commit was pushed, but now the delay of uevent messages
causes that devlink_reload() returns before udev events are handled and
tests fail.

Adjust devlink_reload() to not assume that udev events are already
processed when devlink reload is done, instead, wait for udev events to
ensure they are processed before returning from the function.

Without this patch:
TESTS='rif_mac_profile' ./resource_scale.sh
TEST: 'rif_mac_profile' 4                                           [ OK ]
sysctl: cannot stat /proc/sys/net/ipv6/conf/swp1/disable_ipv6: No such file or directory
sysctl: cannot stat /proc/sys/net/ipv6/conf/swp1/disable_ipv6: No such file or directory
sysctl: cannot stat /proc/sys/net/ipv6/conf/swp2/disable_ipv6: No such file or directory
sysctl: cannot stat /proc/sys/net/ipv6/conf/swp2/disable_ipv6: No such file or directory
Cannot find device "swp1"
Cannot find device "swp2"
TEST: setup_wait_dev (: Interface swp1 does not come up.) [FAIL]

With this patch:
$ TESTS='rif_mac_profile' ./resource_scale.sh
TEST: 'rif_mac_profile' 4                                           [ OK ]
TEST: 'rif_mac_profile' overflow 5                                  [ OK ]

This is relevant not only for this test.

Fixes: bc7cbb1e9f4c ("selftests: forwarding: Add devlink_lib.sh")
Signed-off-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Petr Machata <petrm@nvidia.com>
Link: https://patch.msgid.link/89367666e04b38a8993027f1526801ca327ab96a.1720709333.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:20:08 +01:00
..
android Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
arm64 kselftest: arm64: Add a null pointer check 2024-11-19 14:19:06 +01:00
bpf selftests/bpf: Close fd in error path in drop_on_reuseport 2024-11-23 23:20:08 +01:00
breakpoints Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
capabilities Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cgroup Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
clone3 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
core Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpu-hotplug Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
cpufreq Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
damon Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
dmabuf-heaps Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
drivers mlxsw: spectrum_acl: Fix ACL scale regression and firmware errors 2024-11-23 23:20:07 +01:00
efivarfs selftests/efivarfs: create-read: fix a resource leak 2024-11-18 11:43:13 +01:00
exec Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
filesystems selftests/binderfs: use the Makefile's rules, not Make's implicit rules 2024-11-19 12:26:56 +01:00
firmware Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
fpu Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ftrace tracing/selftests: Fix kprobe event name test for .isra. functions 2024-11-19 14:19:00 +01:00
futex Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gpio Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ia64 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
intel_pstate Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ipc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ir Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kcmp selftests/kcmp: remove unused open mode 2024-11-19 12:26:59 +01:00
kexec Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kmod Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kselftest Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kvm Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lib Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
livepatch Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lkdtm Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
locking Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
media_tests Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
membarrier Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memfd Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
memory-hotplug Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mincore Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mount Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mqueue selftests/mqueue: Set timeout to 180 seconds 2024-11-19 09:22:15 +01:00
net selftests: forwarding: devlink_lib: Wait for udev events after reloading 2024-11-23 23:20:08 +01:00
netfilter Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nsfs Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ntb Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
openat2 selftests/openat2: Fix build warnings on ppc64 2024-11-19 14:19:47 +01:00
pid_namespace Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pidfd selftests/pidfd: Fix ksft print formats 2024-11-18 11:43:02 +01:00
powerpc selftests/powerpc: Fix error handling in FPU/VMX preemption tests 2024-11-18 12:12:20 +01:00
prctl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
proc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
pstore Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ptp Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ptrace Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rcutorture Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
resctrl selftests/resctrl: Ensure the benchmark commands fits to its array 2024-11-18 11:43:02 +01:00
rseq Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rtc Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
safesetid Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
seccomp Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sigaltstack Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
size Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sparc64 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
splice Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
static_keys Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sync Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sysctl Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tc-testing Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
timens Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
timers selftests: timers: Fix valid-adjtimex signed left-shift undefined behavior 2024-11-19 11:32:44 +01:00
tmpfs Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tpm2 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
uevent Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
user Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
vDSO selftests/vDSO: fix clang build errors and warnings 2024-11-19 14:19:50 +01:00
vm selftests/mm: compaction_test: fix bogus test success on Aarch64 2024-11-19 14:19:02 +01:00
watchdog Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
wireguard Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
x86 Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
zram Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
gen_kselftest_tar.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kselftest.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kselftest_deps.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kselftest_harness.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kselftest_install.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
kselftest_module.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lib.mk Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
run_kselftest.sh Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00