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