Re: [PATCH] kselftest: fix OOM in memory compaction test

From: Shuah Khan
Date: Tue Jan 09 2018 - 11:47:41 EST


On 01/09/2018 09:26 AM, Arnd Bergmann wrote:
> Running the compaction_test sometimes results in out-of-memory
> failures. When I debugged this, it turned out that the code to
> reset the number of hugepages to the initial value is simply
> broken since we write into an open sysctl file descriptor
> multiple times without seeking back to the start.
>
> Adding the lseek here fixes the problem.
>
> Cc: stable@xxxxxxxxxxxxxxx
> Reported-by: Naresh Kamboju <naresh.kamboju@xxxxxxxxxx>
> Link: https://bugs.linaro.org/show_bug.cgi?id=3145
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> tools/testing/selftests/vm/compaction_test.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tools/testing/selftests/vm/compaction_test.c b/tools/testing/selftests/vm/compaction_test.c
> index a65b016d4c13..1097f04e4d80 100644
> --- a/tools/testing/selftests/vm/compaction_test.c
> +++ b/tools/testing/selftests/vm/compaction_test.c
> @@ -137,6 +137,8 @@ int check_compaction(unsigned long mem_free, unsigned int hugepage_size)
> printf("No of huge pages allocated = %d\n",
> (atoi(nr_hugepages)));
>
> + lseek(fd, 0, SEEK_SET);
> +
> if (write(fd, initial_nr_hugepages, strlen(initial_nr_hugepages))
> != strlen(initial_nr_hugepages)) {
> perror("Failed to write value to /proc/sys/vm/nr_hugepages\n");
>


Thanks for the patch. I will get this into 4.16-rc1

thanks,
-- Shuah