kernel_samsung_a53x/tools/testing/selftests
David Hildenbrand ad18f8f867 selftests/mm: fix charge_reserved_hugetlb.sh test
[ Upstream commit c41a701d18efe6b8aa402efab16edbaba50c9548 ]

Currently, running the charge_reserved_hugetlb.sh selftest we can
sometimes observe something like:

  $ ./charge_reserved_hugetlb.sh -cgroup-v2
  ...
  write_result is 0
  After write:
  hugetlb_usage=0
  reserved_usage=10485760
  killing write_to_hugetlbfs
  Received 2.
  Deleting the memory
  Detach failure: Invalid argument
  umount: /mnt/huge: target is busy.

Both cases are issues in the test.

While the unmount error seems to be racy, it will make the test fail:
	$ ./run_vmtests.sh -t hugetlb
	...
	# [FAIL]
	not ok 10 charge_reserved_hugetlb.sh -cgroup-v2 # exit=32

The issue is that we are not waiting for the write_to_hugetlbfs process to
quit.  So it might still have a hugetlbfs file open, about which umount is
not happy.  Fix that by making "killall" wait for the process to quit.

The other error ("Detach failure: Invalid argument") does not seem to
result in a test error, but is misleading.  Turns out write_to_hugetlbfs.c
unconditionally tries to cleanup using shmdt(), even when we only
mmap()'ed a hugetlb file.  Even worse, shmaddr is never even set for the
SHM case.  Fix that as well.

With this change it seems to work as expected.

Link: https://lkml.kernel.org/r/20240821123115.2068812-1-david@redhat.com
Fixes: 29750f71a9b4 ("hugetlb_cgroup: add hugetlb_cgroup reservation tests")
Signed-off-by: David Hildenbrand <david@redhat.com>
Reported-by: Mario Casquero <mcasquer@redhat.com>
Reviewed-by: Mina Almasry <almasrymina@google.com>
Tested-by: Mario Casquero <mcasquer@redhat.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:21:42 +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: Fix C++ compile error from missing _Bool type 2024-11-23 23:21:23 +01:00
breakpoints selftests: breakpoints: use remaining time to check if suspend succeed 2024-11-23 23:21:42 +01: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 fix bitmap corruption on close_range() with CLOSE_RANGE_UNSHARE 2024-11-23 23:20:42 +01: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 kselftests: dmabuf-heaps: Ensure the driver name is null-terminated 2024-11-23 23:21:06 +01: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 selftests/sigaltstack: Fix ppc64 GCC build 2024-11-23 23:20:15 +01: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 tc-testing: don't access non-existent variable on exception 2024-11-23 23:20:48 +01: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 vDSO symbols lookup for powerpc64 2024-11-23 23:21:42 +01:00
vm selftests/mm: fix charge_reserved_hugetlb.sh test 2024-11-23 23:21:42 +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