Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0f57b2b authored by Dave Young's avatar Dave Young Committed by Linus Torvalds
Browse files

mm: move hugepage test examples to tools/testing/selftests/vm



hugepage-mmap.c, hugepage-shm.c and map_hugetlb.c in Documentation/vm are
simple pass/fail tests, It's better to promote them to
tools/testing/selftests.

Thanks suggestion of Andrew Morton about this.  They all need firstly
setting up proper nr_hugepages and hugepage-mmap need to mount hugetlbfs.
So I add a shell script run_vmtests to do such work which will call the
three test programs and check the return value of them.

Changes to original code including below:
a. add run_vmtests script
b. return error when read_bytes mismatch with writed bytes.
c. coding style fixes: do not use assignment in if condition

[akpm@linux-foundation.org: build the targets before trying to execute them]
[akpm@linux-foundation.org: Documentation/vm/ no longer has a Makefile. Fixes "make clean"]
Signed-off-by: default avatarDave Young <dyoung@redhat.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 63e31553
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
obj-m := DocBook/ accounting/ auxdisplay/ connector/ \
	filesystems/ filesystems/configfs/ ia64/ laptops/ networking/ \
	pcmcia/ spi/ timers/ vm/ watchdog/src/
	pcmcia/ spi/ timers/ watchdog/src/

Documentation/vm/Makefile

deleted100644 → 0
+0 −8
Original line number Diff line number Diff line
# kbuild trick to avoid linker error. Can be omitted if a module is built.
obj- := dummy.o

# List of programs to build
hostprogs-y := hugepage-mmap hugepage-shm map_hugetlb

# Tell kbuild to always build the programs
always := $(hostprogs-y)
+1 −1
Original line number Diff line number Diff line
TARGETS = breakpoints
TARGETS = breakpoints vm

all:
	for TARGET in $(TARGETS); do \
+14 −0
Original line number Diff line number Diff line
# Makefile for vm selftests

CC = $(CROSS_COMPILE)gcc
CFLAGS = -Wall -Wextra

all: hugepage-mmap hugepage-shm  map_hugetlb
%: %.c
	$(CC) $(CFLAGS) -o $@ $^

run_tests: all
	/bin/sh ./run_vmtests

clean:
	$(RM) hugepage-mmap hugepage-shm  map_hugetlb
+7 −6
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@
#include <sys/mman.h>
#include <fcntl.h>

#define FILE_NAME "/mnt/hugepagefile"
#define FILE_NAME "huge/hugepagefile"
#define LENGTH (256UL*1024*1024)
#define PROTECTION (PROT_READ | PROT_WRITE)

@@ -48,7 +48,7 @@ static void write_bytes(char *addr)
		*(addr + i) = (char)i;
}

static void read_bytes(char *addr)
static int read_bytes(char *addr)
{
	unsigned long i;

@@ -56,14 +56,15 @@ static void read_bytes(char *addr)
	for (i = 0; i < LENGTH; i++)
		if (*(addr + i) != (char)i) {
			printf("Mismatch at %lu\n", i);
			break;
			return 1;
		}
	return 0;
}

int main(void)
{
	void *addr;
	int fd;
	int fd, ret;

	fd = open(FILE_NAME, O_CREAT | O_RDWR, 0755);
	if (fd < 0) {
@@ -81,11 +82,11 @@ int main(void)
	printf("Returned address is %p\n", addr);
	check_bytes(addr);
	write_bytes(addr);
	read_bytes(addr);
	ret = read_bytes(addr);

	munmap(addr, LENGTH);
	close(fd);
	unlink(FILE_NAME);

	return 0;
	return ret;
}
Loading