mirror of
https://github.com/torvalds/linux
synced 2024-09-06 18:01:05 +00:00
selftests: mm: restore settings from only parent process
The atexit() is called from parent process as well as forked processes.
Hence the child restores the settings at exit while the parent is still
executing. Fix this by checking pid of atexit() calling process and only
restore THP number from parent process.
Link: https://lkml.kernel.org/r/20240314094045.157149-1-usama.anjum@collabora.com
Fixes: c23ea61726
("selftests/mm: protection_keys: save/restore nr_hugepages settings")
Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Tested-by: Joey Gouly <joey.gouly@arm.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
950bf45d3b
commit
c52eb6db7b
|
@ -1745,9 +1745,12 @@ void pkey_setup_shadow(void)
|
|||
shadow_pkey_reg = __read_pkey_reg();
|
||||
}
|
||||
|
||||
pid_t parent_pid;
|
||||
|
||||
void restore_settings_atexit(void)
|
||||
{
|
||||
cat_into_file(buf, "/proc/sys/vm/nr_hugepages");
|
||||
if (parent_pid == getpid())
|
||||
cat_into_file(buf, "/proc/sys/vm/nr_hugepages");
|
||||
}
|
||||
|
||||
void save_settings(void)
|
||||
|
@ -1773,6 +1776,7 @@ void save_settings(void)
|
|||
exit(__LINE__);
|
||||
}
|
||||
|
||||
parent_pid = getpid();
|
||||
atexit(restore_settings_atexit);
|
||||
close(fd);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue