mirror of
https://github.com/torvalds/linux.git
synced 2024-12-07 19:41:31 +00:00
5bc73bb345
Create process without mappings and check /proc/*/maps /proc/*/numa_maps /proc/*/smaps /proc/*/smaps_rollup They must be empty (excluding vsyscall page) or full of zeroes. Retroactively this test should've caught embarassing /proc/*/smaps_rollup oops: [17752.703567] BUG: kernel NULL pointer dereference, address: 0000000000000000 [17752.703580] #PF: supervisor read access in kernel mode [17752.703583] #PF: error_code(0x0000) - not-present page [17752.703587] PGD 0 P4D 0 [17752.703593] Oops: 0000 [#1] PREEMPT SMP PTI [17752.703598] CPU: 0 PID: 60649 Comm: cat Tainted: G W 5.19.9-100.fc35.x86_64 #1 [17752.703603] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./X99 Extreme6/3.1, BIOS P3.30 08/05/2016 [17752.703607] RIP: 0010:show_smaps_rollup+0x159/0x2e0 Note 1: ProtectionKey field in /proc/*/smaps is optional, so check most of its contents, not everything. Note 2: due to the nature of this test, child process hardly can signal its readiness (after unmapping everything!) to parent. I feel like "sleep(1)" is justified. If you know how to do it without sleep please tell me. Note 3: /proc/*/statm is not tested but can be. Link: https://lkml.kernel.org/r/Yz3liL6Dn+n2SD8Q@localhost.localdomain Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
30 lines
861 B
Makefile
30 lines
861 B
Makefile
# SPDX-License-Identifier: GPL-2.0-only
|
|
CFLAGS += -Wall -O2 -Wno-unused-function
|
|
CFLAGS += -D_GNU_SOURCE
|
|
LDFLAGS += -pthread
|
|
|
|
TEST_GEN_PROGS :=
|
|
TEST_GEN_PROGS += fd-001-lookup
|
|
TEST_GEN_PROGS += fd-002-posix-eq
|
|
TEST_GEN_PROGS += fd-003-kthread
|
|
TEST_GEN_PROGS += proc-loadavg-001
|
|
TEST_GEN_PROGS += proc-empty-vm
|
|
TEST_GEN_PROGS += proc-pid-vm
|
|
TEST_GEN_PROGS += proc-self-map-files-001
|
|
TEST_GEN_PROGS += proc-self-map-files-002
|
|
TEST_GEN_PROGS += proc-self-syscall
|
|
TEST_GEN_PROGS += proc-self-wchan
|
|
TEST_GEN_PROGS += proc-subset-pid
|
|
TEST_GEN_PROGS += proc-tid0
|
|
TEST_GEN_PROGS += proc-uptime-001
|
|
TEST_GEN_PROGS += proc-uptime-002
|
|
TEST_GEN_PROGS += read
|
|
TEST_GEN_PROGS += self
|
|
TEST_GEN_PROGS += setns-dcache
|
|
TEST_GEN_PROGS += setns-sysvipc
|
|
TEST_GEN_PROGS += thread-self
|
|
TEST_GEN_PROGS += proc-multiple-procfs
|
|
TEST_GEN_PROGS += proc-fsconfig-hidepid
|
|
|
|
include ../lib.mk
|