The patch titled Subject: memfd-test: move common code to a shared unit has been added to the -mm tree. Its filename is memfd-test-move-common-code-to-a-shared-unit.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/memfd-test-move-common-code-to-a-shared-unit.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/memfd-test-move-common-code-to-a-shared-unit.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Subject: memfd-test: move common code to a shared unit The memfd & fuse tests will share more common code in the following commits to test hugetlb support. Link: http://lkml.kernel.org/r/20171107122800.25517-9-marcandre.lureau@xxxxxxxxxx Signed-off-by: Marc-André Lureau <marcandre.lureau@xxxxxxxxxx> Reviewed-by: Mike Kravetz <mike.kravetz@xxxxxxxxxx> Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx> Cc: Hugh Dickins <hughd@xxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Cc: David Herrmann <dh.herrmann@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- tools/testing/selftests/memfd/Makefile | 5 ++ tools/testing/selftests/memfd/common.c | 46 +++++++++++++++++++ tools/testing/selftests/memfd/common.h | 9 +++ tools/testing/selftests/memfd/fuse_test.c | 8 --- tools/testing/selftests/memfd/memfd_test.c | 36 -------------- 5 files changed, 64 insertions(+), 40 deletions(-) diff -puN /dev/null tools/testing/selftests/memfd/common.c --- /dev/null +++ a/tools/testing/selftests/memfd/common.c @@ -0,0 +1,46 @@ +// SPDX-License-Identifier: GPL-2.0 +#define _GNU_SOURCE +#define __EXPORTED_HEADERS__ + +#include <stdio.h> +#include <stdlib.h> +#include <linux/fcntl.h> +#include <linux/memfd.h> +#include <unistd.h> +#include <sys/syscall.h> + +#include "common.h" + +int hugetlbfs_test = 0; + +/* + * Copied from mlock2-tests.c + */ +unsigned long default_huge_page_size(void) +{ + unsigned long hps = 0; + char *line = NULL; + size_t linelen = 0; + FILE *f = fopen("/proc/meminfo", "r"); + + if (!f) + return 0; + while (getline(&line, &linelen, f) > 0) { + if (sscanf(line, "Hugepagesize: %lu kB", &hps) == 1) { + hps <<= 10; + break; + } + } + + free(line); + fclose(f); + return hps; +} + +int sys_memfd_create(const char *name, unsigned int flags) +{ + if (hugetlbfs_test) + flags |= MFD_HUGETLB; + + return syscall(__NR_memfd_create, name, flags); +} diff -puN /dev/null tools/testing/selftests/memfd/common.h --- /dev/null +++ a/tools/testing/selftests/memfd/common.h @@ -0,0 +1,9 @@ +#ifndef COMMON_H_ +#define COMMON_H_ + +extern int hugetlbfs_test; + +unsigned long default_huge_page_size(void); +int sys_memfd_create(const char *name, unsigned int flags); + +#endif diff -puN tools/testing/selftests/memfd/fuse_test.c~memfd-test-move-common-code-to-a-shared-unit tools/testing/selftests/memfd/fuse_test.c --- a/tools/testing/selftests/memfd/fuse_test.c~memfd-test-move-common-code-to-a-shared-unit +++ a/tools/testing/selftests/memfd/fuse_test.c @@ -33,15 +33,11 @@ #include <sys/wait.h> #include <unistd.h> +#include "common.h" + #define MFD_DEF_SIZE 8192 #define STACK_SIZE 65536 -static int sys_memfd_create(const char *name, - unsigned int flags) -{ - return syscall(__NR_memfd_create, name, flags); -} - static int mfd_assert_new(const char *name, loff_t sz, unsigned int flags) { int r, fd; diff -puN tools/testing/selftests/memfd/Makefile~memfd-test-move-common-code-to-a-shared-unit tools/testing/selftests/memfd/Makefile --- a/tools/testing/selftests/memfd/Makefile~memfd-test-move-common-code-to-a-shared-unit +++ a/tools/testing/selftests/memfd/Makefile @@ -12,3 +12,8 @@ fuse_mnt.o: CFLAGS += $(shell pkg-config include ../lib.mk $(OUTPUT)/fuse_mnt: LDLIBS += $(shell pkg-config fuse --libs) + +$(OUTPUT)/memfd_test: memfd_test.c common.o +$(OUTPUT)/fuse_test: fuse_test.c common.o + +EXTRA_CLEAN = common.o diff -puN tools/testing/selftests/memfd/memfd_test.c~memfd-test-move-common-code-to-a-shared-unit tools/testing/selftests/memfd/memfd_test.c --- a/tools/testing/selftests/memfd/memfd_test.c~memfd-test-move-common-code-to-a-shared-unit +++ a/tools/testing/selftests/memfd/memfd_test.c @@ -19,6 +19,8 @@ #include <sys/wait.h> #include <unistd.h> +#include "common.h" + #define MEMFD_STR "memfd:" #define MEMFD_HUGE_STR "memfd-hugetlb:" #define SHARED_FT_STR "(shared file-table)" @@ -29,43 +31,9 @@ /* * Default is not to test hugetlbfs */ -static int hugetlbfs_test; static size_t mfd_def_size = MFD_DEF_SIZE; static const char *memfd_str = MEMFD_STR; -/* - * Copied from mlock2-tests.c - */ -static unsigned long default_huge_page_size(void) -{ - unsigned long hps = 0; - char *line = NULL; - size_t linelen = 0; - FILE *f = fopen("/proc/meminfo", "r"); - - if (!f) - return 0; - while (getline(&line, &linelen, f) > 0) { - if (sscanf(line, "Hugepagesize: %lu kB", &hps) == 1) { - hps <<= 10; - break; - } - } - - free(line); - fclose(f); - return hps; -} - -static int sys_memfd_create(const char *name, - unsigned int flags) -{ - if (hugetlbfs_test) - flags |= MFD_HUGETLB; - - return syscall(__NR_memfd_create, name, flags); -} - static int mfd_assert_new(const char *name, loff_t sz, unsigned int flags) { int r, fd; _ Patches currently in -mm which might be from marcandre.lureau@xxxxxxxxxx are shmem-unexport-shmem_add_seals-shmem_get_seals.patch shmem-rename-functions-that-are-memfd-related.patch hugetlb-expose-hugetlbfs_inode_info-in-header.patch hugetlb-implement-memfd-sealing.patch shmem-add-sealing-support-to-hugetlb-backed-memfd.patch memfd-test-test-hugetlbfs-sealing.patch memfd-test-add-memfd-hugetlb-prefix-when-testing-hugetlbfs.patch memfd-test-move-common-code-to-a-shared-unit.patch memfd-test-run-fuse-test-on-hugetlb-backend-memory.patch mm-page_owner-align-with-pageblock_nr_pages.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html