From 159092c58ec9724be2540931cb95901de37e6666 Mon Sep 17 00:00:00 2001 From: Masamichi Takagi Date: Tue, 18 Sep 2018 16:13:56 +0900 Subject: [PATCH] rusage: Refactor test programs Change-Id: I846a6416acf903f7fa19db98d4d937c51c10b4af --- test/rusage/000_mck.c | 44 +++++ test/rusage/001_mck.c | 50 ++++++ test/rusage/002_mck.c | 55 ++++++ test/rusage/003_mck.c | 55 ++++++ test/rusage/004_mck.c | 56 ++++++ test/rusage/006_mck.c | 61 +++++++ test/rusage/007_mck.c | 61 +++++++ test/rusage/008_mck.c | 66 ++++++++ test/rusage/009_mck.c | 75 +++++++++ test/rusage/010_mck.c | 44 +++++ test/rusage/011_mck.c | 108 ++++++++++++ test/rusage/012_mck.c | 78 +++++++++ test/rusage/013_mck.c | 48 ++++++ test/rusage/014_mck.c | 51 ++++++ test/rusage/015_mck.c | 55 ++++++ test/rusage/016_mck.c | 43 +++++ test/rusage/017_mck.c | 53 ++++++ test/rusage/018_mck.c | 49 ++++++ test/rusage/020_mck.c | 44 +++++ test/rusage/030_mck.c | 44 +++++ test/rusage/{rusage100.patch => 100.patch} | 0 test/rusage/100_mck.c | 70 ++++++++ test/rusage/101_mck.c | 88 ++++++++++ test/rusage/102_mck.c | 78 +++++++++ test/rusage/103_mck.c | 70 ++++++++ test/rusage/{rusage104.patch => 200.patch} | 0 test/rusage/{rusage104_lin.c => 200_lin.c} | 4 +- test/rusage/{rusage104_mck.c => 200_mck.c} | 2 +- test/rusage/Makefile | 187 ++++----------------- test/rusage/README | 68 ++++---- test/rusage/run.sh | 171 +++++++++---------- test/rusage/rusage000.c | 67 -------- test/rusage/rusage001.c | 72 -------- test/rusage/rusage002.c | 79 --------- test/rusage/rusage003.c | 1 - test/rusage/rusage004.c | 78 --------- test/rusage/rusage006.c | 85 ---------- test/rusage/rusage007.c | 1 - test/rusage/rusage008.c | 86 ---------- test/rusage/rusage009.c | 97 ----------- test/rusage/rusage010.c | 1 - test/rusage/rusage011.c | 126 -------------- test/rusage/rusage012.c | 98 ----------- test/rusage/rusage013.c | 72 -------- test/rusage/rusage014.c | 71 -------- test/rusage/rusage015.c | 74 -------- test/rusage/rusage016.c | 67 -------- test/rusage/rusage017.c | 76 --------- test/rusage/rusage018.c | 73 -------- test/rusage/rusage020.c | 1 - test/rusage/rusage030.c | 1 - test/rusage/rusage100.c | 81 --------- test/rusage/rusage101.c | 93 ---------- test/rusage/rusage102.c | 89 ---------- test/rusage/rusage103.c | 81 --------- test/rusage/util.h | 6 +- 56 files changed, 1608 insertions(+), 1846 deletions(-) create mode 100644 test/rusage/000_mck.c create mode 100644 test/rusage/001_mck.c create mode 100644 test/rusage/002_mck.c create mode 100644 test/rusage/003_mck.c create mode 100644 test/rusage/004_mck.c create mode 100644 test/rusage/006_mck.c create mode 100644 test/rusage/007_mck.c create mode 100644 test/rusage/008_mck.c create mode 100644 test/rusage/009_mck.c create mode 100644 test/rusage/010_mck.c create mode 100644 test/rusage/011_mck.c create mode 100644 test/rusage/012_mck.c create mode 100644 test/rusage/013_mck.c create mode 100644 test/rusage/014_mck.c create mode 100644 test/rusage/015_mck.c create mode 100644 test/rusage/016_mck.c create mode 100644 test/rusage/017_mck.c create mode 100644 test/rusage/018_mck.c create mode 100644 test/rusage/020_mck.c create mode 100644 test/rusage/030_mck.c rename test/rusage/{rusage100.patch => 100.patch} (100%) create mode 100644 test/rusage/100_mck.c create mode 100644 test/rusage/101_mck.c create mode 100644 test/rusage/102_mck.c create mode 100644 test/rusage/103_mck.c rename test/rusage/{rusage104.patch => 200.patch} (100%) rename test/rusage/{rusage104_lin.c => 200_lin.c} (97%) rename test/rusage/{rusage104_mck.c => 200_mck.c} (99%) delete mode 100644 test/rusage/rusage000.c delete mode 100644 test/rusage/rusage001.c delete mode 100644 test/rusage/rusage002.c delete mode 120000 test/rusage/rusage003.c delete mode 100644 test/rusage/rusage004.c delete mode 100644 test/rusage/rusage006.c delete mode 120000 test/rusage/rusage007.c delete mode 100644 test/rusage/rusage008.c delete mode 100644 test/rusage/rusage009.c delete mode 120000 test/rusage/rusage010.c delete mode 100644 test/rusage/rusage011.c delete mode 100644 test/rusage/rusage012.c delete mode 100644 test/rusage/rusage013.c delete mode 100644 test/rusage/rusage014.c delete mode 100644 test/rusage/rusage015.c delete mode 100644 test/rusage/rusage016.c delete mode 100644 test/rusage/rusage017.c delete mode 100644 test/rusage/rusage018.c delete mode 120000 test/rusage/rusage020.c delete mode 120000 test/rusage/rusage030.c delete mode 100644 test/rusage/rusage100.c delete mode 100644 test/rusage/rusage101.c delete mode 100644 test/rusage/rusage102.c delete mode 100644 test/rusage/rusage103.c diff --git a/test/rusage/000_mck.c b/test/rusage/000_mck.c new file mode 100644 index 00000000..f16004e4 --- /dev/null +++ b/test/rusage/000_mck.c @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_anon[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + int i; + int sz_index; + void *anon[NUM_AREAS]; + int ret = 0; + + CHKANDJUMP(argc != 2, 255, "%s \n", argv[0]); + sz_index = atoi(argv[1]); + + for (i = 0; i < NUM_AREAS; i++) { + anon[i] = mmap(0, sz_anon[sz_index], PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); + CHKANDJUMP(anon[i] == MAP_FAILED, 255, "mmap failed\n"); + *((unsigned long *)anon[i]) = 0x123456789abcdef0; + } + + for (i = 0; i < NUM_AREAS; i++) { + munmap(anon[i], sz_anon[sz_index]); + } + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/001_mck.c b/test/rusage/001_mck.c new file mode 100644 index 00000000..94d170c2 --- /dev/null +++ b/test/rusage/001_mck.c @@ -0,0 +1,50 @@ +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + int fd; + unsigned long val; + + fd = open("./file", O_RDWR); + CHKANDJUMP(fd == -1, 255, "open failed\n"); + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, MAP_SHARED, + fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + val = *((unsigned long *)mem); + printf("val=%lx\n", val); + // memset(mem, 0, sz_mem[SZ_INDEX]); + + *((unsigned long *)mem) = 0x123456789abcdef0; + // ret = msync(mem, sz_mem[SZ_INDEX], MS_SYNC); + // *((unsigned long *)mem) = 0x123456789abcdef0; + + munmap(mem, sz_mem[SZ_INDEX]); + // ret = close(fd); + // CHKANDJUMP(ret != 0, 255, "close failed\n"); + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/002_mck.c b/test/rusage/002_mck.c new file mode 100644 index 00000000..d66f1b0e --- /dev/null +++ b/test/rusage/002_mck.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + int fd; + char fn[256] = "/dev/shm/Intel_MPI"; + + fd = open(fn, O_CREAT | O_TRUNC | O_RDWR, 0600); + CHKANDJUMP(fd == -1, 255, "shm_open failed,str=%s\n", strerror(errno)); + + ret = ftruncate(fd, sz_mem[SZ_INDEX]); + CHKANDJUMP(ret != 0, 255, "ftruncate failed\n"); + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, MAP_SHARED, + fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + //unsigned long val = *((unsigned long *)mem); + //memset(mem, 0, sz_mem[SZ_INDEX]); + + *((unsigned long *)mem) = 0x123456789abcdef0; + // ret = msync(mem, sz_mem[SZ_INDEX], MS_SYNC); + // *((unsigned long *)mem) = 0x123456789abcdef0; + + munmap(mem, sz_mem[SZ_INDEX]); + ret = close(fd); + CHKANDJUMP(ret != 0, 255, "close failed\n"); + ret = unlink(fn); + CHKANDJUMP(ret != 0, 255, "shm_unlink failed\n"); + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/003_mck.c b/test/rusage/003_mck.c new file mode 100644 index 00000000..d66f1b0e --- /dev/null +++ b/test/rusage/003_mck.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + int fd; + char fn[256] = "/dev/shm/Intel_MPI"; + + fd = open(fn, O_CREAT | O_TRUNC | O_RDWR, 0600); + CHKANDJUMP(fd == -1, 255, "shm_open failed,str=%s\n", strerror(errno)); + + ret = ftruncate(fd, sz_mem[SZ_INDEX]); + CHKANDJUMP(ret != 0, 255, "ftruncate failed\n"); + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, MAP_SHARED, + fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + //unsigned long val = *((unsigned long *)mem); + //memset(mem, 0, sz_mem[SZ_INDEX]); + + *((unsigned long *)mem) = 0x123456789abcdef0; + // ret = msync(mem, sz_mem[SZ_INDEX], MS_SYNC); + // *((unsigned long *)mem) = 0x123456789abcdef0; + + munmap(mem, sz_mem[SZ_INDEX]); + ret = close(fd); + CHKANDJUMP(ret != 0, 255, "close failed\n"); + ret = unlink(fn); + CHKANDJUMP(ret != 0, 255, "shm_unlink failed\n"); + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/004_mck.c b/test/rusage/004_mck.c new file mode 100644 index 00000000..ff33a208 --- /dev/null +++ b/test/rusage/004_mck.c @@ -0,0 +1,56 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + pid_t pid; + int status; + int fd; + unsigned long val; + + fd = open("./file", O_RDWR); + CHKANDJUMP(fd == -1, 255, "open failed\n"); + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, MAP_SHARED, + fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + val = *((unsigned long *)mem); + printf("val=%lx\n", val); + + pid = fork(); + CHKANDJUMP(pid == -1, 255, "fork failed\n"); + if (pid == 0) { + _exit(123); + } else { + ret = waitpid(pid, &status, 0); + CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); + printf("exit status=%d\n", WEXITSTATUS(status)); + } + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/006_mck.c b/test/rusage/006_mck.c new file mode 100644 index 00000000..6740923c --- /dev/null +++ b/test/rusage/006_mck.c @@ -0,0 +1,61 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + pid_t pid; + int status; + int fd; + + char fn[256] = "/dev/shm/Intel_MPI"; + + fd = open(fn, O_CREAT | O_TRUNC | O_RDWR, 0600); + CHKANDJUMP(fd == -1, 255, "shm_open failed,str=%s\n", strerror(errno)); + + ret = ftruncate(fd, sz_mem[SZ_INDEX]); + CHKANDJUMP(ret != 0, 255, "ftruncate failed\n"); + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, MAP_SHARED, + fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + //unsigned long val = *((unsigned long *)mem); + *((unsigned long *)mem) = 0x123456789abcdef0; + + pid = fork(); + CHKANDJUMP(pid == -1, 255, "fork failed\n"); + if (pid == 0) { + _exit(123); + } else { + ret = waitpid(pid, &status, 0); + CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); + printf("exit status=%d\n", WEXITSTATUS(status)); + } + + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/007_mck.c b/test/rusage/007_mck.c new file mode 100644 index 00000000..6740923c --- /dev/null +++ b/test/rusage/007_mck.c @@ -0,0 +1,61 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + pid_t pid; + int status; + int fd; + + char fn[256] = "/dev/shm/Intel_MPI"; + + fd = open(fn, O_CREAT | O_TRUNC | O_RDWR, 0600); + CHKANDJUMP(fd == -1, 255, "shm_open failed,str=%s\n", strerror(errno)); + + ret = ftruncate(fd, sz_mem[SZ_INDEX]); + CHKANDJUMP(ret != 0, 255, "ftruncate failed\n"); + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, MAP_SHARED, + fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + //unsigned long val = *((unsigned long *)mem); + *((unsigned long *)mem) = 0x123456789abcdef0; + + pid = fork(); + CHKANDJUMP(pid == -1, 255, "fork failed\n"); + if (pid == 0) { + _exit(123); + } else { + ret = waitpid(pid, &status, 0); + CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); + printf("exit status=%d\n", WEXITSTATUS(status)); + } + + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/008_mck.c b/test/rusage/008_mck.c new file mode 100644 index 00000000..bc2ee26b --- /dev/null +++ b/test/rusage/008_mck.c @@ -0,0 +1,66 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + pid_t pid; + int status; + int fd; + unsigned long val; + + pid = fork(); + CHKANDJUMP(pid == -1, 255, "fork failed\n"); + if (pid == 0) { + fd = open("./file", O_RDWR); + CHKANDJUMP(fd == -1, 255, "open failed\n"); + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + val = *((unsigned long *)mem); + printf("val=%lx\n", val); + + _exit(123); + } else { + fd = open("./file", O_RDWR); + CHKANDJUMP(fd == -1, 255, "open failed\n"); + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + val = *((unsigned long *)mem); + printf("val=%lx\n", val); + + ret = waitpid(pid, &status, 0); + CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); + printf("exit status=%d\n", WEXITSTATUS(status)); + } + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/009_mck.c b/test/rusage/009_mck.c new file mode 100644 index 00000000..1efaadbc --- /dev/null +++ b/test/rusage/009_mck.c @@ -0,0 +1,75 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + pid_t pid; + int status; + key_t key = ftok(argv[0], 0); + int shmid; + + shmid = shmget(key, sz_mem[SZ_INDEX], IPC_CREAT | 0660); + CHKANDJUMP(shmid == -1, 255, "shmget failed: %s\n", strerror(errno)); + + pid = fork(); + CHKANDJUMP(pid == -1, 255, "fork failed\n"); + if (pid == 0) { + mem = shmat(shmid, NULL, 0); + CHKANDJUMP(mem == (void *)-1, 255, "shmat failed: %s\n", + strerror(errno)); + + *((unsigned long *)mem) = 0x1234; + + ret = shmdt(mem); + CHKANDJUMP(ret == -1, 255, "shmdt failed\n"); + + _exit(123); + } else { + mem = shmat(shmid, NULL, 0); + CHKANDJUMP(mem == (void *)-1, 255, "shmat failed: %s\n", + strerror(errno)); + + + ret = waitpid(pid, &status, 0); + CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); + + printf("%lx\n", *((unsigned long *)mem)); + +#if 0 + struct shmid_ds buf; + + ret = shmctl(shmid, IPC_RMID, &buf); + CHKANDJUMP(ret == -1, 255, "shmctl failed\n"); +#endif + + ret = shmdt(mem); + CHKANDJUMP(ret == -1, 255, "shmdt failed\n"); + } + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/010_mck.c b/test/rusage/010_mck.c new file mode 100644 index 00000000..f16004e4 --- /dev/null +++ b/test/rusage/010_mck.c @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_anon[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + int i; + int sz_index; + void *anon[NUM_AREAS]; + int ret = 0; + + CHKANDJUMP(argc != 2, 255, "%s \n", argv[0]); + sz_index = atoi(argv[1]); + + for (i = 0; i < NUM_AREAS; i++) { + anon[i] = mmap(0, sz_anon[sz_index], PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); + CHKANDJUMP(anon[i] == MAP_FAILED, 255, "mmap failed\n"); + *((unsigned long *)anon[i]) = 0x123456789abcdef0; + } + + for (i = 0; i < NUM_AREAS; i++) { + munmap(anon[i], sz_anon[sz_index]); + } + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/011_mck.c b/test/rusage/011_mck.c new file mode 100644 index 00000000..3dfc0d28 --- /dev/null +++ b/test/rusage/011_mck.c @@ -0,0 +1,108 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + pid_t pid; + int status; + key_t key = ftok(argv[0], 0); + int shmid; + xpmem_segid_t segid; + + shmid = shmget(key, sz_mem[SZ_INDEX], IPC_CREAT | 0660); + CHKANDJUMP(shmid == -1, 255, "shmget failed: %s\n", strerror(errno)); + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + memset(mem, 0, sz_mem[SZ_INDEX]); + + pid = fork(); + CHKANDJUMP(pid == -1, 255, "fork failed\n"); + if (pid == 0) { + void *shm = shmat(shmid, NULL, 0); + + CHKANDJUMP(shm == (void *)-1, 255, "shmat failed: %s\n", + strerror(errno)); + + while ((segid = *(xpmem_segid_t *)shm) == 0) { + }; + + ret = shmdt(shm); + CHKANDJUMP(ret == -1, 255, "shmdt failed\n"); + + xpmem_apid_t apid = xpmem_get(segid, XPMEM_RDWR, + XPMEM_PERMIT_MODE, NULL); + CHKANDJUMP(apid == -1, 255, "xpmem_get failed: %s\n", + strerror(errno)); + + struct xpmem_addr addr = { .apid = apid, .offset = 0 }; + void *attach = xpmem_attach(addr, sz_mem[SZ_INDEX], NULL); + + CHKANDJUMP(attach == (void *)-1, 255, + "xpmem_attach failed: %s\n", strerror(errno)); + + *((unsigned long *)attach) = 0x1234; + + ret = xpmem_detach(attach); + CHKANDJUMP(ret == -1, 255, "xpmem_detach failed\n"); + + _exit(123); + } else { + void *shm = shmat(shmid, NULL, 0); + + CHKANDJUMP(mem == (void *)-1, 255, "shmat failed: %s\n", + strerror(errno)); + + segid = xpmem_make(mem, sz_mem[SZ_INDEX], XPMEM_PERMIT_MODE, + (void *)0666); + CHKANDJUMP(segid == -1, 255, "xpmem_ioctl failed: %s\n", + strerror(errno)); + + *(xpmem_segid_t *)shm = segid; + + ret = waitpid(pid, &status, 0); + CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); + + printf("%lx\n", *((unsigned long *)mem)); + + struct shmid_ds buf; + + ret = shmctl(shmid, IPC_RMID, &buf); + CHKANDJUMP(ret == -1, 255, "shmctl failed\n"); + + ret = shmdt(shm); + CHKANDJUMP(ret == -1, 255, "shmdt failed\n"); + + ret = xpmem_remove(segid); + CHKANDJUMP(ret == -1, 255, "xpmem_remove failed\n"); + } + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/012_mck.c b/test/rusage/012_mck.c new file mode 100644 index 00000000..c62b5594 --- /dev/null +++ b/test/rusage/012_mck.c @@ -0,0 +1,78 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + pid_t pid; + int status; + xpmem_segid_t segid; + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + memset(mem, 0, sz_mem[SZ_INDEX]); + + segid = xpmem_make(mem, sz_mem[SZ_INDEX], XPMEM_PERMIT_MODE, + (void *)0666); + CHKANDJUMP(segid == -1, 255, "xpmem_ioctl failed: %s\n", + strerror(errno)); + + pid = fork(); + CHKANDJUMP(pid == -1, 255, "fork failed\n"); + if (pid == 0) { + xpmem_apid_t apid = xpmem_get(segid, XPMEM_RDWR, + XPMEM_PERMIT_MODE, NULL); + + CHKANDJUMP(apid == -1, 255, "xpmem_get failed: %s\n", + strerror(errno)); + + struct xpmem_addr addr = { .apid = apid, .offset = 0 }; + void *attach = xpmem_attach(addr, sz_mem[SZ_INDEX], NULL); + + CHKANDJUMP(attach == (void *)-1, 255, + "xpmem_attach failed: %s\n", strerror(errno)); + + *((unsigned long *)attach) = 0x1234; + + ret = xpmem_detach(attach); + CHKANDJUMP(ret == -1, 255, "xpmem_detach failed\n"); + + _exit(123); + } else { + ret = waitpid(pid, &status, 0); + CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); + + printf("%lx\n", *((unsigned long *)mem)); + + ret = xpmem_remove(segid); + CHKANDJUMP(ret == -1, 255, "xpmem_remove failed\n"); + } + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/013_mck.c b/test/rusage/013_mck.c new file mode 100644 index 00000000..03ff7974 --- /dev/null +++ b/test/rusage/013_mck.c @@ -0,0 +1,48 @@ +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + int fd; + + fd = open("./file", O_RDWR); + CHKANDJUMP(fd == -1, 255, "open failed\n"); + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_PRIVATE, fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + // unsigned long val = *((unsigned long *)mem); + // memset(mem, 0, sz_mem[SZ_INDEX]); + + *((unsigned long *)mem) = 0x123456789abcdef0; + // ret = msync(mem, sz_mem[SZ_INDEX], MS_SYNC); + // *((unsigned long *)mem) = 0x123456789abcdef0; + + munmap(mem, sz_mem[SZ_INDEX]); + // ret = close(fd); + // CHKANDJUMP(ret != 0, 255, "close failed\n"); + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/014_mck.c b/test/rusage/014_mck.c new file mode 100644 index 00000000..d9cca63f --- /dev/null +++ b/test/rusage/014_mck.c @@ -0,0 +1,51 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_unit[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30)}; + +#define SZ_INDEX 0 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + int fd; + + fd = open("./file", O_RDWR); + CHKANDJUMP(fd == -1, 255, "open failed\n"); + + mem = mmap(0, 2 * sz_unit[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + ret = remap_file_pages(mem + 0 * sz_unit[SZ_INDEX], + sz_unit[SZ_INDEX], 0, 1, MAP_SHARED); + CHKANDJUMP(ret != 0, 255, "remap_file_pages failed\n"); + + ret = remap_file_pages(mem + 1 * sz_unit[SZ_INDEX], + sz_unit[SZ_INDEX], 0, 0, MAP_SHARED); + CHKANDJUMP(ret != 0, 255, "remap_file_pages failed\n"); + + *((unsigned long *)mem) = 0x123456789abcdef0; + *(unsigned long *)((char *)mem + 1 * sz_unit[SZ_INDEX]) = + 0x123456789abcdef0; + + munmap(mem, 2 * sz_unit[SZ_INDEX]); + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/015_mck.c b/test/rusage/015_mck.c new file mode 100644 index 00000000..2d185801 --- /dev/null +++ b/test/rusage/015_mck.c @@ -0,0 +1,55 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_unit[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30)}; + +#define SZ_INDEX 0 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + int fd; + + fd = open("./file", O_RDWR); + CHKANDJUMP(fd == -1, 255, "open failed\n"); + + mem = mmap(0, 2 * sz_unit[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_SHARED, fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + *((unsigned long *)mem) = 0x123456789abcdef0; + *(unsigned long *)((char *)mem + 1 * sz_unit[SZ_INDEX]) = + 0xbeefbeefbeefbeef; + + ret = remap_file_pages(mem + 0 * sz_unit[SZ_INDEX], + sz_unit[SZ_INDEX], 0, 1, MAP_SHARED); + CHKANDJUMP(ret != 0, 255, "remap_file_pages failed\n"); + + ret = remap_file_pages(mem + 1 * sz_unit[SZ_INDEX], + sz_unit[SZ_INDEX], 0, 0, MAP_SHARED); + CHKANDJUMP(ret != 0, 255, "remap_file_pages failed\n"); + + *((unsigned long *)mem) = 0x123456789abcdef0; + *(unsigned long *)((char *)mem + 1 * sz_unit[SZ_INDEX]) = + 0xbeefbeefbeefbeef; + + munmap(mem, 2 * sz_unit[SZ_INDEX]); + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/016_mck.c b/test/rusage/016_mck.c new file mode 100644 index 00000000..e8812324 --- /dev/null +++ b/test/rusage/016_mck.c @@ -0,0 +1,43 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ + +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_anon[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + void *mem; + void *newmem; + int ret = 0; + + mem = mmap(0, sz_anon[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + *((unsigned long *)mem) = 0x123456789abcdef0; + + newmem = mremap(mem, sz_anon[SZ_INDEX], sz_anon[SZ_INDEX + 1], + MREMAP_MAYMOVE); + CHKANDJUMP(newmem == MAP_FAILED, 255, "mmap failed\n"); + *((unsigned long *)mem) = 0xbeefbeefbeefbeef; + + munmap(newmem, sz_anon[SZ_INDEX + 1]); + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/017_mck.c b/test/rusage/017_mck.c new file mode 100644 index 00000000..5b67712b --- /dev/null +++ b/test/rusage/017_mck.c @@ -0,0 +1,53 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + int fd; + + fd = open("./file", O_RDWR); + CHKANDJUMP(fd == -1, 255, "open failed\n"); + + mem = mmap(0, 3 * sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_PRIVATE, fd, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + *(unsigned long *)((char *)mem + 0) = 0x123456789abcdef0; + *(unsigned long *)((char *)mem + sz_mem[SZ_INDEX]) = + 0xbeefbeefbeefbeef; + *(unsigned long *)((char *)mem + 2 * sz_mem[SZ_INDEX]) = + 0xbeefbeefbeefbeef; + + ret = mprotect(mem + sz_mem[SZ_INDEX], sz_mem[SZ_INDEX], + PROT_READ | PROT_WRITE | PROT_EXEC); + CHKANDJUMP(ret != 0, 255, "mprotect failed\n"); + + munmap(mem, 3 * sz_mem[SZ_INDEX]); + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/018_mck.c b/test/rusage/018_mck.c new file mode 100644 index 00000000..80e38afc --- /dev/null +++ b/test/rusage/018_mck.c @@ -0,0 +1,49 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 1 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + void *mem; + int ret = 0; + + mem = mmap(0, 3 * sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + + *(unsigned long *)((char *)mem + 0) = 0x123456789abcdef0; + *(unsigned long *)((char *)mem + sz_mem[SZ_INDEX]) = + 0xbeefbeefbeefbeef; + *(unsigned long *)((char *)mem + 2 * sz_mem[SZ_INDEX]) = + 0xbeefbeefbeefbeef; + + ret = mprotect(mem + sz_mem[SZ_INDEX - 1], sz_mem[SZ_INDEX - 1], + PROT_READ | PROT_WRITE | PROT_EXEC); + CHKANDJUMP(ret != 0, 255, "mprotect failed\n"); + + munmap(mem, 3 * sz_mem[SZ_INDEX]); + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/020_mck.c b/test/rusage/020_mck.c new file mode 100644 index 00000000..81406c04 --- /dev/null +++ b/test/rusage/020_mck.c @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_anon[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + int i; + int sz_index; + void *anon[NUM_AREAS]; + int ret = 0; + + CHKANDJUMP(argc != 2, 255, "%s \n", argv[0]); + sz_index = atoi(argv[1]); + + for (i = 0; i < NUM_AREAS; i++) { + anon[i] = mmap(0, sz_anon[sz_index], PROT_READ | PROT_WRITE, + MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); + CHKANDJUMP(anon[i] == MAP_FAILED, 255, "mmap failed\n"); + *((unsigned long *)anon[i]) = 0x123456789abcdef0; + } + + for (i = 0; i < NUM_AREAS; i++) { + munmap(anon[i], sz_anon[sz_index]); + } + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/030_mck.c b/test/rusage/030_mck.c new file mode 100644 index 00000000..f16004e4 --- /dev/null +++ b/test/rusage/030_mck.c @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include +#include "util.h" + +#define DEBUG + +int sz_anon[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NUM_AREAS 1 + +int main(int argc, char **argv) +{ + int i; + int sz_index; + void *anon[NUM_AREAS]; + int ret = 0; + + CHKANDJUMP(argc != 2, 255, "%s \n", argv[0]); + sz_index = atoi(argv[1]); + + for (i = 0; i < NUM_AREAS; i++) { + anon[i] = mmap(0, sz_anon[sz_index], PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); + CHKANDJUMP(anon[i] == MAP_FAILED, 255, "mmap failed\n"); + *((unsigned long *)anon[i]) = 0x123456789abcdef0; + } + + for (i = 0; i < NUM_AREAS; i++) { + munmap(anon[i], sz_anon[sz_index]); + } + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/rusage100.patch b/test/rusage/100.patch similarity index 100% rename from test/rusage/rusage100.patch rename to test/rusage/100.patch diff --git a/test/rusage/100_mck.c b/test/rusage/100_mck.c new file mode 100644 index 00000000..1f1e96e7 --- /dev/null +++ b/test/rusage/100_mck.c @@ -0,0 +1,70 @@ +#include +#include +#include +#include /* For SYS_xxx definitions */ +#include "util.h" +#include "ihklib.h" +#include "mckernel/ihklib_rusage.h" + +#define DEBUG + +int sz_anon[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NLOOP 2 + +int main(int argc, char **argv) +{ + int i, j, ret = 0; + void *mem; + struct mckernel_rusage rusage; + + for (j = 0; j < NLOOP; j++) { + mem = mmap(0, sz_anon[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + *((unsigned long *)mem) = 0x123456789abcdef0; + + ret = syscall(900); + CHKANDJUMP(ret != 0, 255, "syscall failed\n"); + + ret = ihk_os_getrusage(0, &rusage, sizeof(rusage)); + CHKANDJUMP(ret != 0, 255, "ihk_os_getrusage failed\n"); + + for (i = 0; i < IHK_MAX_NUM_PGSIZES; i++) { + printf("memory_stat_rss[%d]=%ld\n", i, + rusage.memory_stat_rss[i]); + printf("memory_stat_mapped_file[%d]=%ld\n", i, + rusage.memory_stat_mapped_file[i]); + } + printf("memory_max_usage=%ld\n", rusage.memory_max_usage); + printf("memory_kmem_usage=%ld\n", rusage.memory_kmem_usage); + printf("memory_kmem_max_usage=%ld\n", + rusage.memory_kmem_max_usage); +#define NUM_NUMA_NODES 2 + for (i = 0; i < NUM_NUMA_NODES; i++) { + printf("memory_numa_stat[%d]=%ld\n", i, + rusage.memory_numa_stat[i]); + } +#define NUM_CPUS 2 + for (i = 0; i < NUM_CPUS; i++) { + printf("cpuacct_usage_percpu[%d]=%ld\n", i, + rusage.cpuacct_usage_percpu[i]); + } + printf("cpuacct_stat_system=%ld\n", + rusage.cpuacct_stat_system); + printf("cpuacct_stat_user=%ld\n", rusage.cpuacct_stat_user); + printf("cpuacct_usage=%ld\n", rusage.cpuacct_usage); + + printf("num_threads=%d\n", rusage.num_threads); + printf("max_num_threads=%d\n", rusage.max_num_threads); + } + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/101_mck.c b/test/rusage/101_mck.c new file mode 100644 index 00000000..f0df5d14 --- /dev/null +++ b/test/rusage/101_mck.c @@ -0,0 +1,88 @@ +#include +#include +#include +#include +#include +#include /* For SYS_xxx definitions */ +#include "util.h" +#include "ihklib.h" +#include "mckernel/ihklib_rusage.h" + +#define DEBUG + +int sz_anon[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NLOOP 2 + +int main(int argc, char **argv) +{ + int i, j, ret = 0; + void *mem; + struct mckernel_rusage rusage; + pid_t pid; + int status; + + pid = fork(); + CHKANDJUMP(pid == -1, 255, "fork failed"); + if (pid == 0) { + + for (j = 0; j < NLOOP; j++) { + mem = mmap(0, sz_anon[SZ_INDEX], + PROT_READ | PROT_WRITE, + MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + *((unsigned long *)mem) = 0x123456789abcdef0; + + ret = syscall(900); + CHKANDJUMP(ret != 0, 255, "syscall failed\n"); + + ret = ihk_os_getrusage(0, &rusage, sizeof(rusage)); + CHKANDJUMP(ret != 0, 255, "ihk_os_getrusage failed\n"); + + for (i = 0; i < IHK_MAX_NUM_PGSIZES; i++) { + printf("memory_stat_rss[%d]=%ld\n", + i, rusage.memory_stat_rss[i]); + printf("memory_stat_mapped_file[%d]=%ld\n", + i, rusage.memory_stat_mapped_file[i]); + } + printf("memory_max_usage=%ld\n", + rusage.memory_max_usage); + printf("memory_kmem_usage=%ld\n", + rusage.memory_kmem_usage); + printf("memory_kmem_max_usage=%ld\n", + rusage.memory_kmem_max_usage); +#define NUM_NUMA_NODES 2 + for (i = 0; i < NUM_NUMA_NODES; i++) { + printf("memory_numa_stat[%d]=%ld\n", + i, rusage.memory_numa_stat[i]); + } +#define NUM_CPUS 2 + for (i = 0; i < NUM_CPUS; i++) { + printf("cpuacct_usage_percpu[%d]=%ld\n", + i, rusage.cpuacct_usage_percpu[i]); + } + printf("cpuacct_stat_system=%ld\n", + rusage.cpuacct_stat_system); + printf("cpuacct_stat_user=%ld\n", + rusage.cpuacct_stat_user); + printf("cpuacct_usage=%ld\n", rusage.cpuacct_usage); + + printf("num_threads=%d\n", rusage.num_threads); + printf("max_num_threads=%d\n", rusage.max_num_threads); + } + _exit(123); + } else { + ret = waitpid(pid, &status, 0); + CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); + } + + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/102_mck.c b/test/rusage/102_mck.c new file mode 100644 index 00000000..1bb29b93 --- /dev/null +++ b/test/rusage/102_mck.c @@ -0,0 +1,78 @@ +#include +#include +#include +#include /* For SYS_xxx definitions */ +#include +#include +#include +#include "util.h" +#include "ihklib.h" +#include "mckernel/ihklib_rusage.h" + +#define DEBUG + +int sz_mem[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NLOOP 2 + +int main(int argc, char **argv) +{ + int i, j, ret = 0; + void *mem; + int fd; + struct mckernel_rusage rusage; + + fd = open("./file", O_RDWR); + CHKANDJUMP(fd == -1, 255, "open failed\n"); + + for (j = 0; j < NLOOP; j++) { + + mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_SHARED, fd, sz_mem[SZ_INDEX] * j); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + *((unsigned long *)mem) = 0x123456789abcdef0; + + ret = syscall(900); + CHKANDJUMP(ret != 0, 255, "syscall failed\n"); + + ret = ihk_os_getrusage(0, &rusage, sizeof(rusage)); + CHKANDJUMP(ret != 0, 255, "ihk_os_getrusage failed\n"); + + for (i = 0; i < IHK_MAX_NUM_PGSIZES; i++) { + printf("memory_stat_rss[%d]=%ld\n", + i, rusage.memory_stat_rss[i]); + printf("memory_stat_mapped_file[%d]=%ld\n", + i, rusage.memory_stat_mapped_file[i]); + } + printf("memory_max_usage=%ld\n", rusage.memory_max_usage); + printf("memory_kmem_usage=%ld\n", rusage.memory_kmem_usage); + printf("memory_kmem_max_usage=%ld\n", + rusage.memory_kmem_max_usage); +#define NUM_NUMA_NODES 2 + for (i = 0; i < NUM_NUMA_NODES; i++) { + printf("memory_numa_stat[%d]=%ld\n", + i, rusage.memory_numa_stat[i]); + } +#define NUM_CPUS 2 + for (i = 0; i < NUM_CPUS; i++) { + printf("cpuacct_usage_percpu[%d]=%ld\n", + i, rusage.cpuacct_usage_percpu[i]); + } + printf("cpuacct_stat_system=%ld\n", + rusage.cpuacct_stat_system); + printf("cpuacct_stat_user=%ld\n", rusage.cpuacct_stat_user); + printf("cpuacct_usage=%ld\n", rusage.cpuacct_usage); + + printf("num_threads=%d\n", rusage.num_threads); + printf("max_num_threads=%d\n", rusage.max_num_threads); + } + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/103_mck.c b/test/rusage/103_mck.c new file mode 100644 index 00000000..b0deb9f2 --- /dev/null +++ b/test/rusage/103_mck.c @@ -0,0 +1,70 @@ +#include +#include +#include +#include /* For SYS_xxx definitions */ +#include "util.h" +#include "ihklib.h" +#include "mckernel/ihklib_rusage.h" + +#define DEBUG + +int sz_anon[] = { + 4 * (1ULL<<10), + 2 * (1ULL<<20), + 1 * (1ULL<<30), + 134217728}; + +#define SZ_INDEX 0 +#define NLOOP 2 + +int main(int argc, char **argv) +{ + int i, j, ret = 0; + void *mem; + struct mckernel_rusage rusage; + + for (j = 0; j < NLOOP; j++) { + mem = mmap(0, sz_anon[SZ_INDEX], PROT_READ | PROT_WRITE, + MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); + CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); + *((unsigned long *)mem) = 0x123456789abcdef0; + + ret = syscall(900); + CHKANDJUMP(ret != 0, 255, "syscall failed\n"); + + ret = ihk_os_getrusage(0, &rusage, sizeof(rusage)); + CHKANDJUMP(ret != 0, 255, "ihk_os_getrusage failed\n"); + + for (i = 0; i < IHK_MAX_NUM_PGSIZES; i++) { + printf("memory_stat_rss[%d]=%ld\n", + i, rusage.memory_stat_rss[i]); + printf("memory_stat_mapped_file[%d]=%ld\n", + i, rusage.memory_stat_mapped_file[i]); + } + printf("memory_max_usage=%ld\n", rusage.memory_max_usage); + printf("memory_kmem_usage=%ld\n", rusage.memory_kmem_usage); + printf("memory_kmem_max_usage=%ld\n", + rusage.memory_kmem_max_usage); +#define NUM_NUMA_NODES 2 + for (i = 0; i < NUM_NUMA_NODES; i++) { + printf("memory_numa_stat[%d]=%ld\n", + i, rusage.memory_numa_stat[i]); + } +#define NUM_CPUS 2 + for (i = 0; i < NUM_CPUS; i++) { + printf("cpuacct_usage_percpu[%d]=%ld\n", + i, rusage.cpuacct_usage_percpu[i]); + } + printf("cpuacct_stat_system=%ld\n", + rusage.cpuacct_stat_system); + printf("cpuacct_stat_user=%ld\n", rusage.cpuacct_stat_user); + printf("cpuacct_usage=%ld\n", rusage.cpuacct_usage); + + printf("num_threads=%d\n", rusage.num_threads); + printf("max_num_threads=%d\n", rusage.max_num_threads); + } + fn_exit: + return ret; + fn_fail: + goto fn_exit; +} diff --git a/test/rusage/rusage104.patch b/test/rusage/200.patch similarity index 100% rename from test/rusage/rusage104.patch rename to test/rusage/200.patch diff --git a/test/rusage/rusage104_lin.c b/test/rusage/200_lin.c similarity index 97% rename from test/rusage/rusage104_lin.c rename to test/rusage/200_lin.c index 192c36a8..aec6f7fe 100644 --- a/test/rusage/rusage104_lin.c +++ b/test/rusage/200_lin.c @@ -20,7 +20,7 @@ int main(int argc, char **argv) if ((ret = ihk_os_getrusage(0, &rusage, sizeof(rusage)))) { fprintf(stderr, "%s: ihk_os_getrusage failed\n", __func__); ret = -EINVAL; - goto out; + goto fn_fail; } OKNG(WITHIN_RANGE(rusage.cpuacct_usage_percpu[1], DELAY0, SCALE), @@ -32,7 +32,7 @@ int main(int argc, char **argv) printf("All tests finished\n"); - out: + fn_fail: return ret; } diff --git a/test/rusage/rusage104_mck.c b/test/rusage/200_mck.c similarity index 99% rename from test/rusage/rusage104_mck.c rename to test/rusage/200_mck.c index a68f7d97..b3925e27 100644 --- a/test/rusage/rusage104_mck.c +++ b/test/rusage/200_mck.c @@ -12,6 +12,7 @@ #include #include #include +#include "util.h" #define DELAY0 (100UL * 1000 * 1000) @@ -115,7 +116,6 @@ unsigned long nsec; void fwq_init(void) { struct timespec start, end; - int i; clock_gettime(TIMER_KIND, &start); #define N_INIT 10000000 diff --git a/test/rusage/Makefile b/test/rusage/Makefile index b10e3926..7b8f1bc4 100644 --- a/test/rusage/Makefile +++ b/test/rusage/Makefile @@ -1,179 +1,60 @@ -.SUFFIXES: # Clear suffixes -.SUFFIXES: .c +include $(HOME)/.mck_test_config.mk +XPMEM_DIR=$(HOME)/usr CC = gcc -CPPFLAGS = -I$(HOME)/project/os/install/include -CCFLAGS = -g -LDFLAGS = -L$(HOME)/project/os/install/lib -lihk -Wl,-rpath -Wl,$(HOME)/project/os/install/lib -lpthread -EXES = -SRCS = -OBJS = $(SRCS:.c=.o) +CPPFLAGSLIN = -I$(MCK_DIR)/include +CFLAGSLIN = -Wall -Werror -g +LDFLAGSLIN = -L$(MCK_DIR)/lib -lihk -Wl,-rpath -Wl,$(MCK_DIR)/lib -lpthread +SRCSLIN = $(shell ls *_lin.c) +EXESLIN = $(SRCSLIN:.c=) +OBJSLIN = $(SRCSLIN:.c=.o) -CPPFLAGSMCK = -I$(HOME)/usr/include -CCFLAGSMCK = -g -O0 -LDFLAGSMCK = -static -lpthread -SRCSMCK = $(shell ls rusage*.c) +CPPFLAGSMCK = +CFLAGSMCK = -Wall -Werror -g -O0 +LDFLAGSMCK = +SRCSMCK = $(shell ls *.c | grep -vE '_lin') EXESMCK = $(SRCSMCK:.c=) OBJSMCK = $(SRCSMCK:.c=.o) -all: $(EXES) $(EXESMCK) +all: $(EXESLIN) $(EXESMCK) -rusage000: rusage000.o - $(CC) -o $@ $^ $(LDFLAGSMCK) +011_mck: 011_mck.o + $(CC) -o $@ $^ $(LDFLAGSMCK) -L$(XPMEM_DIR)/lib -lxpmem -rusage000.o: rusage000.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< +011_mck.o: 011_mck.c + $(CC) $(CFLAGSMCK) $(CPPFLAGSMCK) -I$(XPMEM_DIR)/include -c $< -rusage010: rusage010.o - $(CC) -o $@ $^ $(LDFLAGSMCK) +012_mck: 012_mck.o + $(CC) -o $@ $^ $(LDFLAGSMCK) -L$(XPMEM_DIR)/lib -lxpmem -Wl,-rpath -Wl,$(XPMEM_DIR)/lib -rusage010.o: rusage010.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< +012_mck.o: 012_mck.c + $(CC) $(CFLAGSMCK) $(CPPFLAGSMCK) -I$(XPMEM_DIR)/include -c $< -rusage020: rusage020.o - $(CC) -o $@ $^ $(LDFLAGSMCK) +10%_mck: 10%_mck.o + $(CC) -o $@ $^ $(LDFLAGSMCK) -L$(MCK_DIR)/lib -lihk -Wl,-rpath -Wl,$(MCK_DIR)/lib -rusage020.o: rusage020.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< +10%_mck.o:: 10%_mck.c + $(CC) $(CFLAGSMCK) $(CPPFLAGSMCK) -I$(MCK_DIR)/include -c $< -rusage030: rusage030.o - $(CC) -o $@ $^ $(LDFLAGSMCK) +20%_mck: 20%_mck.o + $(CC) -o $@ $^ $(LDFLAGSMCK) -lpthread -rusage030.o: rusage030.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage001: rusage001.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage001.o: rusage001.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage002: rusage002.o - $(CC) -o $@ $^ $(LDFLAGSMCK) -lrt - -rusage002.o: rusage002.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage003: rusage003.o - $(CC) -o $@ $^ $(LDFLAGSMCK) -lrt - -rusage003.o: rusage003.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage004: rusage004.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage004.o: rusage004.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage006: rusage006.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage006.o: rusage006.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage007: rusage007.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage007.o: rusage007.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage008: rusage008.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage008.o: rusage008.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage009: rusage009.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage009.o: rusage009.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage011: rusage011.o - $(CC) -o $@ $^ $(LDFLAGSMCK) -L/home/takagi/usr/lib -lxpmem - -rusage011.o: rusage011.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage012: rusage012.o - $(CC) -o $@ $^ $(LDFLAGSMCK) -L/home/takagi/usr/lib -lxpmem - -rusage012.o: rusage012.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage013: rusage013.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage013.o: rusage013.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage014: rusage014.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage014.o: rusage014.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage015: rusage015.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage015.o: rusage015.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage016: rusage016.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage016.o: rusage016.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage017: rusage017.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage017.o: rusage017.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage018: rusage018.o - $(CC) -o $@ $^ $(LDFLAGSMCK) - -rusage018.o: rusage018.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< - -rusage100: rusage100.o - $(CC) -o $@ $^ $(LDFLAGS) - -rusage100.o: rusage100.c - $(CC) $(CCFLAGS) $(CPPFLAGS) -c $< - -rusage101: rusage101.o - $(CC) -o $@ $^ $(LDFLAGS) - -rusage101.o: rusage101.c - $(CC) $(CCFLAGS) $(CPPFLAGS) -c $< - -rusage102: rusage102.o - $(CC) -o $@ $^ $(LDFLAGS) - -rusage102.o: rusage102.c - $(CC) $(CCFLAGS) $(CPPFLAGS) -c $< - -rusage103: rusage103.o - $(CC) -o $@ $^ $(LDFLAGS) - -rusage103.o: rusage103.c - $(CC) $(CCFLAGS) $(CPPFLAGS) -c $< +20%_mck.o:: 20%_mck.c + $(CC) $(CFLAGSMCK) $(CPPFLAGSMCK) -c $< %_mck: %_mck.o $(CC) -o $@ $^ $(LDFLAGSMCK) %_mck.o:: %_mck.c - $(CC) $(CCFLAGSMCK) $(CPPFLAGSMCK) -c $< + $(CC) $(CFLAGSMCK) $(CPPFLAGSMCK) -c $< + %_lin.o:: %_lin.c - $(CC) $(CCFLAGS) $(CPPFLAGS) -c $< + $(CC) $(CFLAGSLIN) $(CPPFLAGSLIN) -c $< %_lin: %_lin.o - $(CC) -o $@ $^ $(LDFLAGS) + $(CC) -o $@ $^ $(LDFLAGSLIN) clean: - rm -f core $(EXES) $(OBJS) $(EXESMCK) $(OBJSMCK) + rm -f core $(EXESLIN) $(OBJSLIN) $(EXESMCK) $(OBJSMCK) diff --git a/test/rusage/README b/test/rusage/README index 15ba045f..018bda98 100644 --- a/test/rusage/README +++ b/test/rusage/README @@ -1,10 +1,14 @@ ========== How to run ========== -./run.sh - -Example: -./run.sh rusage000 +(1) cp /mckernel/mck_test_config.sample \ + ~/.mck_test_config +(2) cp /ihk/mck_test_config.mk.sample \ + ~/.mck_test_config.mk +(3) Edit the following line in Makefile: + XPMEM_DIR=/usr/ +(4) ./run.sh + Example: ./run.sh 000 =================================== How to judge it behaves as expected @@ -14,7 +18,7 @@ Follow the instruction given by run.sh. ===================== Descripation of tests ===================== -rusage000: Excercise the following execution paths: +000: Excercise the following execution paths: args_envs()->set_range() text,data,arg,env[OK] args_envs()->set_range() !vdso [OK], args_envs()->set_range() stack[OK], @@ -29,89 +33,89 @@ rusage000: Excercise the following execution paths: exit_group()->free_process_memory_range()->!vdso[OK], exit_group()->free_process_memory_range()->stack[OK], -rusage010: Excercise the following execution paths: +010: Excercise the following execution paths: app->mmap() 2M,anon,pre-page ->set_range()->munmap()->free_process_memory_range()->clear_range()[OK] -rusage020: Excercise the following execution paths: +020: Excercise the following execution paths: app->mmap() 1G,anon,private,demand-page -> pf -> set_range() [NA (failed to get 1GB page)], app->mmap() 1G,anon,private,demand-page -> pf -> set_range()->munmap()->free_process_memory_range()->clear_range()[NA (failed to get 1GB page)] -rusage030: Excercise the following execution paths: +030: Excercise the following execution paths: app->mmap() 128M,anon,private,demand-page(=zeroobj) -> pf -> set_range() [OK], app->mmap() 128M,anon,private,demand-page(=zeroobj) -> pf -> set_range()->munmap()->free_process_memory_range()->clear_range()[OK] -rusage001: Excercise the following execution paths: +001: Excercise the following execution paths: do_mmap(),file,demand-page->get_page(),ld->set_pte()->munmap()->clear_range() [OK] do_mmap(),file,demand-page->get_page(),ld->set_pte()->st->munmap()->clear_range() [OK] do_mmap(),file,demand-page->get_page(),st->set_pte()->flush()->munmap()->clear_range() [OK] -rusage002: Excercise the following execution paths: +002: Excercise the following execution paths: do_mmap(),/dev/shm with --mpol_shm_premap,pre-page->get_page(),st->set_pte()->munmap()->clear_range() [OK] -rusage003: Excercise the following execution paths: +003: Excercise the following execution paths: do_mmap(),/dev/shm without --mpol_shm_premap,pre-page->get_page(),st->set_pte()->munmap()->clear_range() [OK] -rusage004: Excercise the following execution paths related to clone +004: Excercise the following execution paths related to clone load segments->copy_user_ranges()->clear_range() [OK] filemap(demand-paging)->copy_user_ranges()->clear_range() [OK] -rusage005: Excercise the following execution paths related to device file (ib ping-pong) +005: Excercise the following execution paths related to device file (ib ping-pong) devobj()->get_page()->pf->munmap()->clear_range() [OK] remote page fault->cow->clear_range() [OK] ld-linux.so->mmap private->cow->clear_range() [OK] -rusage006: Excercise the following execution paths related to clone +006: Excercise the following execution paths related to clone filemap,/dev/shm with --mpol_shm_premap->copy_user_ranges()->clear_range() [OK] -rusage007: Excercise the following execution paths related to clone +007: Excercise the following execution paths related to clone filemap,/dev/shm without --mpol_shm_premap->copy_user_ranges()->clear_range() [OK] -rusage008: Excercise the following execution paths related to sharing file-map page +008: Excercise the following execution paths related to sharing file-map page fork()->filemap->pf->clear_range() [OK] -rusage009: Excercise the following execution paths related to sharing shmget() page +009: Excercise the following execution paths related to sharing shmget() page fork()->shmat()->pf->clear_range() [OK] -rusage011: Excercise the following execution paths related to sharing xpmem page +011: Excercise the following execution paths related to sharing xpmem page fork()->xpmem_attach()->pf->clear_range() [OK] -rusage012: #925 +012: #925 -rusage013: Excercise the following execution paths: +013: Excercise the following execution paths: fileobj(prvate)->cow->set_pte()->clear_range() [OK] -rusage014: Excercise the following execution paths related to remap_file_pages +014: Excercise the following execution paths related to remap_file_pages do_mmap->fileobj-->remap_file_pages()->st->clear_range() [OK] -rusage015: Excercise the following execution paths related to remap_file_pages +015: Excercise the following execution paths related to remap_file_pages do_mmap->fileobj-->st-->remap_one_page()->clear_range() [OK] -rusage016: Excercise the following execution paths related to mremap +016: Excercise the following execution paths related to mremap mremap()->move_pte_range()-->clear_range() [OK] -rusage017: Excercise the following execution paths related to split_process_memory_range, file-map +017: Excercise the following execution paths related to split_process_memory_range, file-map mprotect()->split_process_memory_range()->change_prot_process_memory_range()->clear_range()/file_obj_release() [OK] -rusage018: Excercise the following execution paths related to split_process_memory_range, 2M-page +018: Excercise the following execution paths related to split_process_memory_range, 2M-page mprotect()->ihk_mc_pt_split()->change_prot_process_memory_range()->clear_range() [OK] -rusage019: Run npb bt-mz.S.2 +019: Run npb bt-mz.S.2 1-ppn x 2-tpn x 2-node[OK] -rusage021: Run npb bt-mz.S.4 +021: Run npb bt-mz.S.4 2-ppn x 2-tpn x 2-node (wallaby{14,15}) [OK] 2-ppn x 1-tpn x 2-node (polaris,kochab) [OK] -rusage100: Test ihk_os_getrusage() +100: Test ihk_os_getrusage(), call from McKernel process anon mmap,num_threads=1 [OK] -rusage101: Test ihk_os_getrusage() +101: Test ihk_os_getrusage(), call from McKernel process anon mmap,num_threads=2 [OK] -rusage102: Test ihk_os_getrusage() +102: Test ihk_os_getrusage(), call from McKernel process file map,num_threads=1 [OK] -rusage103: Test ihk_os_getrusage() +103: Test ihk_os_getrusage(), call from McKernel process anon mmap@numa#1 [OK] -rusage104: Test ihk_os_getrusage(), user time per CPU +200: Test ihk_os_getrusage(), user time per CPU diff --git a/test/rusage/run.sh b/test/rusage/run.sh index e54f4ee1..f0a06c95 100755 --- a/test/rusage/run.sh +++ b/test/rusage/run.sh @@ -1,5 +1,7 @@ #!/usr/bin/bash +. ${HOME}/.mck_test_config + testname=$1 bootopt="-m 256M" mcexecopt="" @@ -7,21 +9,19 @@ testopt="" kill="n" dryrun="n" sleepopt="0.4" -home=$(eval echo \$\{HOME\}) -install=${home}/project/os/install echo Executing ${testname} case ${testname} in - rusage011 | rusage012) + 011 | 012) printf "*** Enable debug messages in rusage.h, memory.c, fileobj.c, shmobj.c, process.c by defining DEBUG macro, e.g. #define RUSAGE_DEBUG and then recompile IHK/McKernel.\n" printf "*** Install xpmem by git-clone https://github.com/hjelmn/xpmem.\n" ;; - rusage100 | rusage101 | rusage102 | rusage103) + 100 | 101 | 102 | 103) printf "*** Refer to rusage100.patch to add syscall #900 by editing syscall_list.h and syscall.c and recompile IHK/McKernel.\n" ;; - rusage104) - printf "*** Apply rusage104.patch to enable syscall #900" + 200) + printf "*** Apply rusage200.patch to enable syscall #900" printf "which reports rusage values.\n" ;; *) @@ -32,33 +32,34 @@ esac read -p "*** Hit return when ready!" key case ${testname} in - rusage005) - ssh wallaby -c '(cd ${home}/project/src/rusage/verbs; make rdma_wr)' - bn=verbs/rdma_wr + 005) + ssh wallaby -c '(cd ${HOME}/project/src/rusage/verbs; make rdma_wr)' + bn_mck=verbs/rdma_wr ;; - rusage019) - #ssh wallaby -c '(cd ${home}/project/src/rusage/npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI; make bt-mz CLASS=S NPROCS=2)' - bn=npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI/bin/bt-mz.S.2 + 019) + #ssh wallaby -c '(cd ${HOME}/project/src/rusage/npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI; make bt-mz CLASS=S NPROCS=2)' + bn_mck=npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI/bin/bt-mz.S.2 perl -e 'print "wallaby14\nwallaby15\n"' > ./hostfile ;; - rusage021) + 021) if ! grep /var/log/local6 /etc/rsyslog.conf &>/dev/null; then echo "Insert a line of local6.* /var/log/local6 into /etc/rsyslog.conf" exit 255 fi - ssh wallaby bash -c '(cd ${home}/project/src/rusage/npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI; make bt-mz CLASS=S NPROCS=4)' - bn=npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI/bin/bt-mz.S.4 + ssh wallaby bash -c '(cd ${HOME}/project/src/rusage/npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI; make bt-mz CLASS=S NPROCS=4)' + bn_mck=npb/NPB3.3.1-MZ/NPB3.3-MZ-MPI/bin/bt-mz.S.4 perl -e 'print "polaris:2\nkochab:2\n"' > ./hostfile ;; - rusage104) - bn=${testname} + 200) + bn_mck=${testname}_mck + bn_lin=${testname}_lin make clean > /dev/null 2> /dev/null - make ${bn}_mck ${bn}_lin + make $bn_mck $bn_lin ;; *) - bn=${testname} + bn_mck=${testname}_mck make clean > /dev/null 2> /dev/null - make ${bn} + make $bn_mck esac pid=`pidof mcexec` @@ -67,91 +68,82 @@ if [ "${pid}" != "" ]; then fi case ${testname} in - rusage000) + 000) testopt="0" ;; - rusage010) + 010) testopt="1" ;; - rusage020) + 020) bootopt="-m 256M@0,1G@0" testopt="2" kill="y" ;; - rusage030) + 030) testopt="3" ;; - rusage001) - cp ${bn} ./file + 001) + cp $bn_mck ./file kill="n" ;; - rusage002) + 002) mcexecopt="--mpol-shm-premap" ;; - rusage003) + 003) ;; - rusage004) - cp ${bn} ./file + 004) + cp $bn_mck ./file ;; - rusage005) - echo ssh wallaby15.aics-sys.riken.jp ${home}/project/src/verbs/rdma_wr -p 10000& + 005) + echo ssh wallaby15.aics-sys.riken.jp ${HOME}/project/src/verbs/rdma_wr -p 10000& read -p "Run rdma_wr on wallaby15 and enter the port number." port testopt="-s wallaby15.aics-sys.riken.jp -p ${port}" ;; - rusage006) + 006) mcexecopt="--mpol-shm-premap" ;; - rusage007) + 007) ;; - rusage008) - cp ${bn} ./file + 008) + cp $bn_mck ./file ;; - rusage009) + 009) ;; - rusage011) + 011) sudo insmod /home/takagi/usr/lib/module/xpmem.ko sudo chmod og+rw /dev/xpmem dryrun="n" kill="n" sleepopt="5" ;; - rusage012) + 012) sudo insmod /home/takagi/usr/lib/module/xpmem.ko sudo chmod og+rw /dev/xpmem dryrun="n" kill="n" sleepopt="5" ;; - rusage013) - cp ${bn} ./file + 013 | 014 | 015 | 017) + cp $bn_mck ./file ;; - rusage014) - cp ${bn} ./file + 016) ;; - rusage015) - cp ${bn} ./file + 018) ;; - rusage016) - ;; - rusage017) - cp ${bn} ./file - ;; - rusage018) - ;; - rusage019 | rusage021) + 019 | 021) bootopt="-k 1 -m 256M" ;; - rusage100) + 100) ;; - rusage101) + 101) ;; - rusage102) - cp ${bn} ./file + 102) + cp $bn_lin ./file ;; - rusage103) + 103) bootopt="-m 256M@1" ;; - rusage104) + 200) bootopt="-c 1,2,3 -m 256M" ;; *) @@ -164,7 +156,7 @@ exit fi case ${testname} in - rusage019 | rusage021) + 019 | 021) sudo rm /var/log/local6 sudo touch /var/log/local6 sudo chmod 600 /var/log/local6 @@ -175,60 +167,69 @@ case ${testname} in esac case ${testname} in - rusage019 | rusage021) - echo sudo ssh wallaby15 ${install}/sbin/mcstop+release.sh && - echo sudo ssh wallaby15 ${install}/sbin/mcreboot.sh + 019 | 021) + echo sudo ssh wallaby15 ${MCK_DIR}/sbin/mcstop+release.sh && + echo sudo ssh wallaby15 ${MCK_DIR}/sbin/mcreboot.sh read -p "Boot mckernel on wallaby15." ans ;; *) ;; esac -sudo ${install}/sbin/mcstop+release.sh && -sudo ${install}/sbin/mcreboot.sh ${bootopt} +sudo ${MCK_DIR}/sbin/mcstop+release.sh && +sudo ${MCK_DIR}/sbin/mcreboot.sh ${bootopt} if [ ${kill} == "y" ]; then - ${install}/bin/mcexec ${mcexecopt} ./${bn} ${testopt} & + ${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn} ${testopt} & sleep ${sleepopt} - sudo ${install}/sbin/ihkosctl 0 kmsg > ./${testname}.log + sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg > ./${testname}.log pid=`pidof mcexec` if [ "${pid}" != "" ]; then kill -9 ${pid} > /dev/null 2> /dev/null fi else case ${testname} in - rusage005) - ${install}/bin/mcexec ${mcexecopt} ./${bn} ${testopt} + 005) + ${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_mck} ${testopt} #read -p "Run rdma_wr." ans - sudo ${install}/sbin/ihkosctl 0 kmsg > ./${testname}.log + sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg > ./${testname}.log ;; - rusage019 | rusage021) - echo OMP_NUM_THREADS=2 mpiexec -machinefile ./hostfile ${install}/bin/mcexec ${mcexecopt} ./${bn} ${testopt} - read -p "Run ${bn} and hit return." ans + 019 | 021) + echo OMP_NUM_THREADS=2 mpiexec -machinefile ./hostfile ${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_mck} ${testopt} + read -p "Run ${bn_mck} and hit return." ans sleep 1.5 sudo cat /var/log/local6 > ./${testname}.log ;; - rusage100 | rusage101 | rusage102 | rusage103) - ${install}/bin/mcexec ${mcexecopt} ./${bn} ${testopt} > ./${testname}.log + 100 | 101 | 102 | 103) + ${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_mck} ${testopt} > ./${testname}.log echo "================================================" >> ./${testname}.log - sudo ${install}/sbin/ihkosctl 0 kmsg >> ./${testname}.log + sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg >> ./${testname}.log ;; - rusage104) - ${install}/bin/mcexec ${mcexecopt} ./${bn}_mck - ${install}/bin/mcexec ${mcexecopt} ./${bn}_lin - sudo ${install}/sbin/ihkosctl 0 kmsg > ./${testname}.log + 200) + ${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_mck} + ${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_lin} + sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg > ./${testname}.log grep user ./${testname}.log ;; *) - ${install}/bin/mcexec ${mcexecopt} ./${bn} ${testopt} - sudo ${install}/sbin/ihkosctl 0 kmsg > ./${testname}.log + ${MCK_DIR}/bin/mcexec ${mcexecopt} ./${bn_mck} ${testopt} + sudo ${MCK_DIR}/sbin/ihkosctl 0 kmsg > ./${testname}.log esac fi + case ${testname} in - rusage100 | rusage101 | rusage102 | rusage103) + 011 | 012) + sudo rmmod xpmem + ;; + *) + ;; +esac + +case ${testname} in + 100 | 101 | 102 | 103) printf "*** Check the ihk_os_getrusage() result (the first part of ${testname}.log) matches with the syscall #900 result (the second part) \n" ;; - rusage104) + 200) printf "*** It behaves as expected when there's no [NG] and " printf "\"All tests finished\" is shown\n" ;; @@ -238,4 +239,4 @@ case ${testname} in ;; esac -sudo ${install}/sbin/mcstop+release.sh +sudo ${MCK_DIR}/sbin/mcstop+release.sh diff --git a/test/rusage/rusage000.c b/test/rusage/rusage000.c deleted file mode 100644 index 19bc8e74..00000000 --- a/test/rusage/rusage000.c +++ /dev/null @@ -1,67 +0,0 @@ -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_anon[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 -#define NUM_AREAS 1 - -int main(int argc, char** argv) { - int i; - int sz_index; - void* anon[NUM_AREAS]; - int ret = 0; - CHKANDJUMP(argc != 2, 255, "%s \n", argv[0]); - sz_index = atoi(argv[1]); - - for(i = 0; i < NUM_AREAS; i++) { - anon[i] = mmap(0, sz_anon[sz_index], PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); - CHKANDJUMP(anon[i] == MAP_FAILED, 255, "mmap failed\n"); - *((unsigned long*)anon[i]) = 0x123456789abcdef0; - } - - for(i = 0; i < NUM_AREAS; i++) { - munmap(anon[i], sz_anon[sz_index]); - } - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage001.c b/test/rusage/rusage001.c deleted file mode 100644 index cad64d48..00000000 --- a/test/rusage/rusage001.c +++ /dev/null @@ -1,72 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - int fd; - - fd = open("./file", O_RDWR); - CHKANDJUMP(fd == -1, 255, "open failed\n"); - - mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - unsigned long val = *((unsigned long*)mem); - //memset(mem, 0, sz_mem[SZ_INDEX]); - - *((unsigned long*)mem) = 0x123456789abcdef0; -//ret = msync(mem, sz_mem[SZ_INDEX], MS_SYNC); -// *((unsigned long*)mem) = 0x123456789abcdef0; - - munmap(mem, sz_mem[SZ_INDEX]); - //ret = close(fd); - //CHKANDJUMP(ret != 0, 255, "close failed\n"); - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage002.c b/test/rusage/rusage002.c deleted file mode 100644 index f613334e..00000000 --- a/test/rusage/rusage002.c +++ /dev/null @@ -1,79 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - int fd; - char fn[256] = "/dev/shm/Intel_MPI"; - - fd = open(fn, O_CREAT | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); - CHKANDJUMP(fd == -1, 255, "shm_open failed,str=%s\n", strerror(errno)); - - ret = ftruncate(fd, sz_mem[SZ_INDEX]); - CHKANDJUMP(ret != 0, 255, "ftruncate failed\n"); - - mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - //unsigned long val = *((unsigned long*)mem); - //memset(mem, 0, sz_mem[SZ_INDEX]); - - *((unsigned long*)mem) = 0x123456789abcdef0; - // ret = msync(mem, sz_mem[SZ_INDEX], MS_SYNC); - // *((unsigned long*)mem) = 0x123456789abcdef0; - - munmap(mem, sz_mem[SZ_INDEX]); - ret = close(fd); - CHKANDJUMP(ret != 0, 255, "close failed\n"); - ret = unlink(fn); - CHKANDJUMP(ret != 0, 255, "shm_unlink failed\n"); - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage003.c b/test/rusage/rusage003.c deleted file mode 120000 index 239a35e2..00000000 --- a/test/rusage/rusage003.c +++ /dev/null @@ -1 +0,0 @@ -rusage002.c \ No newline at end of file diff --git a/test/rusage/rusage004.c b/test/rusage/rusage004.c deleted file mode 100644 index bf5aea0f..00000000 --- a/test/rusage/rusage004.c +++ /dev/null @@ -1,78 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 -#define NUM_AREAS 1 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - pid_t pid; - int status; - int fd; - - fd = open("./file", O_RDWR); - CHKANDJUMP(fd == -1, 255, "open failed\n"); - - mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - unsigned long val = *((unsigned long*)mem); - - pid = fork(); - CHKANDJUMP(pid == -1, 255, "fork failed\n"); - if(pid == 0) { - _exit(123); - } else { - ret = waitpid(pid, &status, 0); - CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); - printf("exit status=%d\n", WEXITSTATUS(status)); - } - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage006.c b/test/rusage/rusage006.c deleted file mode 100644 index e76368f4..00000000 --- a/test/rusage/rusage006.c +++ /dev/null @@ -1,85 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 -#define NUM_AREAS 1 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - pid_t pid; - int status; - int fd; - - char fn[256] = "/dev/shm/Intel_MPI"; - - fd = open(fn, O_CREAT | O_TRUNC | O_RDWR, S_IRUSR | S_IWUSR); - CHKANDJUMP(fd == -1, 255, "shm_open failed,str=%s\n", strerror(errno)); - - ret = ftruncate(fd, sz_mem[SZ_INDEX]); - CHKANDJUMP(ret != 0, 255, "ftruncate failed\n"); - - mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - //unsigned long val = *((unsigned long*)mem); - *((unsigned long*)mem) = 0x123456789abcdef0; - - pid = fork(); - CHKANDJUMP(pid == -1, 255, "fork failed\n"); - if(pid == 0) { - _exit(123); - } else { - ret = waitpid(pid, &status, 0); - CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); - printf("exit status=%d\n", WEXITSTATUS(status)); - } - - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage007.c b/test/rusage/rusage007.c deleted file mode 120000 index 1a64aac5..00000000 --- a/test/rusage/rusage007.c +++ /dev/null @@ -1 +0,0 @@ -rusage006.c \ No newline at end of file diff --git a/test/rusage/rusage008.c b/test/rusage/rusage008.c deleted file mode 100644 index f28ecc89..00000000 --- a/test/rusage/rusage008.c +++ /dev/null @@ -1,86 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 -#define NUM_AREAS 1 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - pid_t pid; - int status; - int fd; - - pid = fork(); - CHKANDJUMP(pid == -1, 255, "fork failed\n"); - if(pid == 0) { - fd = open("./file", O_RDWR); - CHKANDJUMP(fd == -1, 255, "open failed\n"); - - mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - unsigned long val = *((unsigned long*)mem); - - _exit(123); - } else { - fd = open("./file", O_RDWR); - CHKANDJUMP(fd == -1, 255, "open failed\n"); - - mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - unsigned long val = *((unsigned long*)mem); - - ret = waitpid(pid, &status, 0); - CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); - printf("exit status=%d\n", WEXITSTATUS(status)); - } - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage009.c b/test/rusage/rusage009.c deleted file mode 100644 index 698d6f18..00000000 --- a/test/rusage/rusage009.c +++ /dev/null @@ -1,97 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - pid_t pid; - int status; - key_t key = ftok(argv[0], 0); - int shmid; - - shmid = shmget(key, sz_mem[SZ_INDEX], IPC_CREAT | 0660); - CHKANDJUMP(shmid == -1, 255, "shmget failed: %s\n", strerror(errno)); - - pid = fork(); - CHKANDJUMP(pid == -1, 255, "fork failed\n"); - if(pid == 0) { - mem = shmat(shmid, NULL, 0); - CHKANDJUMP(mem == (void*)-1, 255, "shmat failed: %s\n", strerror(errno)); - - *((unsigned long*)mem) = 0x1234; - - ret = shmdt(mem); - CHKANDJUMP(ret == -1, 255, "shmdt failed\n"); - - _exit(123); - } else { - mem = shmat(shmid, NULL, 0); - CHKANDJUMP(mem == (void*)-1, 255, "shmat failed: %s\n", strerror(errno)); - - - ret = waitpid(pid, &status, 0); - CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); - - printf("%lx\n", *((unsigned long*)mem)); - -#if 0 - struct shmid_ds buf; - ret = shmctl(shmid, IPC_RMID, &buf); - CHKANDJUMP(ret == -1, 255, "shmctl failed\n"); -#endif - - ret = shmdt(mem); - CHKANDJUMP(ret == -1, 255, "shmdt failed\n"); - } - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage010.c b/test/rusage/rusage010.c deleted file mode 120000 index dcda4d36..00000000 --- a/test/rusage/rusage010.c +++ /dev/null @@ -1 +0,0 @@ -rusage000.c \ No newline at end of file diff --git a/test/rusage/rusage011.c b/test/rusage/rusage011.c deleted file mode 100644 index fd7ba260..00000000 --- a/test/rusage/rusage011.c +++ /dev/null @@ -1,126 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - pid_t pid; - int status; - key_t key = ftok(argv[0], 0); - int shmid; - xpmem_segid_t segid; - - shmid = shmget(key, sz_mem[SZ_INDEX], IPC_CREAT | 0660); - CHKANDJUMP(shmid == -1, 255, "shmget failed: %s\n", strerror(errno)); - - mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - memset(mem, 0, sz_mem[SZ_INDEX]); - - pid = fork(); - CHKANDJUMP(pid == -1, 255, "fork failed\n"); - if(pid == 0) { - void *shm = shmat(shmid, NULL, 0); - CHKANDJUMP(shm == (void*)-1, 255, "shmat failed: %s\n", strerror(errno)); - - while((segid = *(xpmem_segid_t*)shm) == 0) { }; - - ret = shmdt(shm); - CHKANDJUMP(ret == -1, 255, "shmdt failed\n"); - - ret = xpmem_init(); - CHKANDJUMP(ret != 0, 255, "xpmem_init failed: %s\n", strerror(errno)); - - xpmem_apid_t apid = xpmem_get(segid, XPMEM_RDWR, XPMEM_PERMIT_MODE, NULL); - CHKANDJUMP(apid == -1, 255, "xpmem_get failed: %s\n", strerror(errno)); - - struct xpmem_addr addr = { .apid = apid, .offset = 0 }; - void* attach = xpmem_attach(addr, sz_mem[SZ_INDEX], NULL); - CHKANDJUMP(attach == (void*)-1, 255, "xpmem_attach failed: %s\n", strerror(errno)); - - *((unsigned long*)attach) = 0x1234; - - ret = xpmem_detach(attach); - CHKANDJUMP(ret == -1, 255, "xpmem_detach failed\n"); - - _exit(123); - } else { - void *shm = shmat(shmid, NULL, 0); - CHKANDJUMP(mem == (void*)-1, 255, "shmat failed: %s\n", strerror(errno)); - - ret = xpmem_init(); - CHKANDJUMP(ret != 0, 255, "xpmem_init failed: %s\n", strerror(errno)); - - segid = xpmem_make(mem, sz_mem[SZ_INDEX], XPMEM_PERMIT_MODE, (void*)0666); - CHKANDJUMP(segid == -1, 255, "xpmem_ioctl failed: %s\n", strerror(errno)); - - *(xpmem_segid_t*)shm = segid; - - ret = waitpid(pid, &status, 0); - CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); - - printf("%lx\n", *((unsigned long*)mem)); - - struct shmid_ds buf; - ret = shmctl(shmid, IPC_RMID, &buf); - CHKANDJUMP(ret == -1, 255, "shmctl failed\n"); - - ret = shmdt(shm); - CHKANDJUMP(ret == -1, 255, "shmdt failed\n"); - - ret = xpmem_remove(segid); - CHKANDJUMP(ret == -1, 255, "xpmem_remove failed\n"); - } - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage012.c b/test/rusage/rusage012.c deleted file mode 100644 index 663b7bb0..00000000 --- a/test/rusage/rusage012.c +++ /dev/null @@ -1,98 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - pid_t pid; - int status; - xpmem_segid_t segid; - - mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - memset(mem, 0, sz_mem[SZ_INDEX]); - - ret = xpmem_init(); - CHKANDJUMP(ret != 0, 255, "xpmem_init failed: %s\n", strerror(errno)); - - segid = xpmem_make(mem, sz_mem[SZ_INDEX], XPMEM_PERMIT_MODE, (void*)0666); - CHKANDJUMP(segid == -1, 255, "xpmem_ioctl failed: %s\n", strerror(errno)); - - pid = fork(); - CHKANDJUMP(pid == -1, 255, "fork failed\n"); - if(pid == 0) { - xpmem_apid_t apid = xpmem_get(segid, XPMEM_RDWR, XPMEM_PERMIT_MODE, NULL); - CHKANDJUMP(apid == -1, 255, "xpmem_get failed: %s\n", strerror(errno)); - - struct xpmem_addr addr = { .apid = apid, .offset = 0 }; - void* attach = xpmem_attach(addr, sz_mem[SZ_INDEX], NULL); - CHKANDJUMP(attach == (void*)-1, 255, "xpmem_attach failed: %s\n", strerror(errno)); - - *((unsigned long*)attach) = 0x1234; - - ret = xpmem_detach(attach); - CHKANDJUMP(ret == -1, 255, "xpmem_detach failed\n"); - - _exit(123); - } else { - ret = waitpid(pid, &status, 0); - CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); - - printf("%lx\n", *((unsigned long*)mem)); - - ret = xpmem_remove(segid); - CHKANDJUMP(ret == -1, 255, "xpmem_remove failed\n"); - } - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage013.c b/test/rusage/rusage013.c deleted file mode 100644 index 2ed29080..00000000 --- a/test/rusage/rusage013.c +++ /dev/null @@ -1,72 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - int fd; - - fd = open("./file", O_RDWR); - CHKANDJUMP(fd == -1, 255, "open failed\n"); - - mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - //unsigned long val = *((unsigned long*)mem); - //memset(mem, 0, sz_mem[SZ_INDEX]); - - *((unsigned long*)mem) = 0x123456789abcdef0; -//ret = msync(mem, sz_mem[SZ_INDEX], MS_SYNC); -// *((unsigned long*)mem) = 0x123456789abcdef0; - - munmap(mem, sz_mem[SZ_INDEX]); - //ret = close(fd); - //CHKANDJUMP(ret != 0, 255, "close failed\n"); - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage014.c b/test/rusage/rusage014.c deleted file mode 100644 index 932bc63f..00000000 --- a/test/rusage/rusage014.c +++ /dev/null @@ -1,71 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_unit[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30)}; - -#define SZ_INDEX 0 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - int fd; - - fd = open("./file", O_RDWR); - CHKANDJUMP(fd == -1, 255, "open failed\n"); - - mem = mmap(0, 2 * sz_unit[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - ret = remap_file_pages(mem + 0 * sz_unit[SZ_INDEX], sz_unit[SZ_INDEX], 0, 1, MAP_SHARED); - CHKANDJUMP(ret != 0, 255, "remap_file_pages failed\n"); - - ret = remap_file_pages(mem + 1 * sz_unit[SZ_INDEX], sz_unit[SZ_INDEX], 0, 0, MAP_SHARED); - CHKANDJUMP(ret != 0, 255, "remap_file_pages failed\n"); - - *((unsigned long*)mem) = 0x123456789abcdef0; - *(unsigned long*)((char*)mem + 1 * sz_unit[SZ_INDEX]) = 0x123456789abcdef0; - - munmap(mem, 2 * sz_unit[SZ_INDEX]); - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage015.c b/test/rusage/rusage015.c deleted file mode 100644 index 43975b13..00000000 --- a/test/rusage/rusage015.c +++ /dev/null @@ -1,74 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_unit[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30)}; - -#define SZ_INDEX 0 - -int main(int argc, char** argv) { - void* mem; - int ret = 0; - int fd; - - fd = open("./file", O_RDWR); - CHKANDJUMP(fd == -1, 255, "open failed\n"); - - mem = mmap(0, 2 * sz_unit[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - *((unsigned long*)mem) = 0x123456789abcdef0; - *(unsigned long*)((char*)mem + 1 * sz_unit[SZ_INDEX]) = 0xbeefbeefbeefbeef; - - ret = remap_file_pages(mem + 0 * sz_unit[SZ_INDEX], sz_unit[SZ_INDEX], 0, 1, MAP_SHARED); - CHKANDJUMP(ret != 0, 255, "remap_file_pages failed\n"); - - ret = remap_file_pages(mem + 1 * sz_unit[SZ_INDEX], sz_unit[SZ_INDEX], 0, 0, MAP_SHARED); - CHKANDJUMP(ret != 0, 255, "remap_file_pages failed\n"); - - *((unsigned long*)mem) = 0x123456789abcdef0; - *(unsigned long*)((char*)mem + 1 * sz_unit[SZ_INDEX]) = 0xbeefbeefbeefbeef; - - munmap(mem, 2 * sz_unit[SZ_INDEX]); - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage016.c b/test/rusage/rusage016.c deleted file mode 100644 index af4a4599..00000000 --- a/test/rusage/rusage016.c +++ /dev/null @@ -1,67 +0,0 @@ -#define _GNU_SOURCE /* See feature_test_macros(7) */ - -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_anon[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 -#define NUM_AREAS 1 - -int main(int argc, char** argv) { - int i; - void* mem; - void* newmem; - int ret = 0; - - mem = mmap(0, sz_anon[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - *((unsigned long*)mem) = 0x123456789abcdef0; - - newmem = mremap(mem, sz_anon[SZ_INDEX], sz_anon[SZ_INDEX + 1], MREMAP_MAYMOVE); - CHKANDJUMP(newmem == MAP_FAILED, 255, "mmap failed\n"); - *((unsigned long*)mem) = 0xbeefbeefbeefbeef; - - munmap(newmem, sz_anon[SZ_INDEX + 1]); - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage017.c b/test/rusage/rusage017.c deleted file mode 100644 index 00ffcefd..00000000 --- a/test/rusage/rusage017.c +++ /dev/null @@ -1,76 +0,0 @@ -#define _GNU_SOURCE /* See feature_test_macros(7) */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 -#define NUM_AREAS 1 - -int main(int argc, char** argv) { - int i; - void* mem; - void* newmem; - int ret = 0; - int fd; - - fd = open("./file", O_RDWR); - CHKANDJUMP(fd == -1, 255, "open failed\n"); - - mem = mmap(0, 3 * sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - *(unsigned long*)((char*)mem + 0) = 0x123456789abcdef0; - *(unsigned long*)((char*)mem + sz_mem[SZ_INDEX]) = 0xbeefbeefbeefbeef; - *(unsigned long*)((char*)mem + 2 * sz_mem[SZ_INDEX]) = 0xbeefbeefbeefbeef; - - ret = mprotect(mem + sz_mem[SZ_INDEX], sz_mem[SZ_INDEX], PROT_READ | PROT_EXEC); - CHKANDJUMP(ret != 0, 255, "mprotect failed\n"); - - munmap(mem, 3 * sz_mem[SZ_INDEX]); - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage018.c b/test/rusage/rusage018.c deleted file mode 100644 index 4737b3aa..00000000 --- a/test/rusage/rusage018.c +++ /dev/null @@ -1,73 +0,0 @@ -#define _GNU_SOURCE /* See feature_test_macros(7) */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - eprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 1 -#define NUM_AREAS 1 - -int main(int argc, char** argv) { - int i; - void* mem; - void* newmem; - int ret = 0; - int fd; - - mem = mmap(0, 3 * sz_mem[SZ_INDEX], PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - - *(unsigned long*)((char*)mem + 0) = 0x123456789abcdef0; - *(unsigned long*)((char*)mem + sz_mem[SZ_INDEX]) = 0xbeefbeefbeefbeef; - *(unsigned long*)((char*)mem + 2 * sz_mem[SZ_INDEX]) = 0xbeefbeefbeefbeef; - - ret = mprotect(mem + sz_mem[SZ_INDEX - 1], sz_mem[SZ_INDEX - 1], PROT_READ | PROT_EXEC); - CHKANDJUMP(ret != 0, 255, "mprotect failed\n"); - - munmap(mem, 3 * sz_mem[SZ_INDEX]); - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage020.c b/test/rusage/rusage020.c deleted file mode 120000 index dcda4d36..00000000 --- a/test/rusage/rusage020.c +++ /dev/null @@ -1 +0,0 @@ -rusage000.c \ No newline at end of file diff --git a/test/rusage/rusage030.c b/test/rusage/rusage030.c deleted file mode 120000 index dcda4d36..00000000 --- a/test/rusage/rusage030.c +++ /dev/null @@ -1 +0,0 @@ -rusage000.c \ No newline at end of file diff --git a/test/rusage/rusage100.c b/test/rusage/rusage100.c deleted file mode 100644 index 28177f4a..00000000 --- a/test/rusage/rusage100.c +++ /dev/null @@ -1,81 +0,0 @@ -#include -#include -#include -#include /* For SYS_xxx definitions */ -#include "ihklib.h" -#include "mckernel/ihklib_rusage.h" - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - dprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_anon[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 -#define NLOOP 2 - -int main(int argc, char** argv) { - int i, j, ret = 0, ret_ihklib; - void* mem; - struct mckernel_rusage rusage; - - for (j = 0; j < NLOOP; j++) { - mem = mmap(0, sz_anon[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - *((unsigned long*)mem) = 0x123456789abcdef0; - - ret = syscall(900); - CHKANDJUMP(ret != 0, 255, "syscall failed\n"); - - ret = ihk_os_getrusage(0, &rusage, sizeof(rusage)); - CHKANDJUMP(ret != 0, 255, "ihk_os_getrusage failed\n"); - - for (i = 0; i < IHK_MAX_NUM_PGSIZES; i++) { - printf("memory_stat_rss[%d]=%ld\n", i, rusage.memory_stat_rss[i]); - printf("memory_stat_mapped_file[%d]=%ld\n", i, rusage.memory_stat_mapped_file[i]); - } - printf("memory_max_usage=%ld\n", rusage.memory_max_usage); - printf("memory_kmem_usage=%ld\n", rusage.memory_kmem_usage); - printf("memory_kmem_max_usage=%ld\n", rusage.memory_kmem_max_usage); -#define NUM_NUMA_NODES 2 - for (i = 0; i < NUM_NUMA_NODES; i++) { - printf("memory_numa_stat[%d]=%ld\n", i, rusage.memory_numa_stat[i]); - } -#define NUM_CPUS 2 - for (i = 0; i < NUM_CPUS; i++) { - printf("cpuacct_usage_percpu[%d]=%ld\n", i, rusage.cpuacct_usage_percpu[i]); - } - printf("cpuacct_stat_system=%ld\n", rusage.cpuacct_stat_system); - printf("cpuacct_stat_user=%ld\n", rusage.cpuacct_stat_user); - printf("cpuacct_usage=%ld\n", rusage.cpuacct_usage); - - printf("num_threads=%d\n", rusage.num_threads); - printf("max_num_threads=%d\n", rusage.max_num_threads); - } - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage101.c b/test/rusage/rusage101.c deleted file mode 100644 index 2d2e29ab..00000000 --- a/test/rusage/rusage101.c +++ /dev/null @@ -1,93 +0,0 @@ -#include -#include -#include -#include /* For SYS_xxx definitions */ -#include "ihklib.h" -#include "mckernel/ihklib_rusage.h" - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - dprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_anon[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 -#define NLOOP 2 - -int main(int argc, char** argv) { - int i, j, ret = 0, ret_ihklib; - void* mem; - struct mckernel_rusage rusage; - pid_t pid; - int status; - - pid = fork(); - CHKANDJUMP(pid == -1, 255, "fork failed"); - if (pid == 0) { - - for (j = 0; j < NLOOP; j++) { - mem = mmap(0, sz_anon[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - *((unsigned long*)mem) = 0x123456789abcdef0; - - ret = syscall(900); - CHKANDJUMP(ret != 0, 255, "syscall failed\n"); - - ret = ihk_os_getrusage(0, &rusage, sizeof(rusage)); - CHKANDJUMP(ret != 0, 255, "ihk_os_getrusage failed\n"); - - for (i = 0; i < IHK_MAX_NUM_PGSIZES; i++) { - printf("memory_stat_rss[%d]=%ld\n", i, rusage.memory_stat_rss[i]); - printf("memory_stat_mapped_file[%d]=%ld\n", i, rusage.memory_stat_mapped_file[i]); - } - printf("memory_max_usage=%ld\n", rusage.memory_max_usage); - printf("memory_kmem_usage=%ld\n", rusage.memory_kmem_usage); - printf("memory_kmem_max_usage=%ld\n", rusage.memory_kmem_max_usage); -#define NUM_NUMA_NODES 2 - for (i = 0; i < NUM_NUMA_NODES; i++) { - printf("memory_numa_stat[%d]=%ld\n", i, rusage.memory_numa_stat[i]); - } -#define NUM_CPUS 2 - for (i = 0; i < NUM_CPUS; i++) { - printf("cpuacct_usage_percpu[%d]=%ld\n", i, rusage.cpuacct_usage_percpu[i]); - } - printf("cpuacct_stat_system=%ld\n", rusage.cpuacct_stat_system); - printf("cpuacct_stat_user=%ld\n", rusage.cpuacct_stat_user); - printf("cpuacct_usage=%ld\n", rusage.cpuacct_usage); - - printf("num_threads=%d\n", rusage.num_threads); - printf("max_num_threads=%d\n", rusage.max_num_threads); - } - _exit(123); - } else { - ret = waitpid(pid, &status, 0); - CHKANDJUMP(ret == -1, 255, "waitpid failed\n"); - } - - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage102.c b/test/rusage/rusage102.c deleted file mode 100644 index 53cf306c..00000000 --- a/test/rusage/rusage102.c +++ /dev/null @@ -1,89 +0,0 @@ -#include -#include -#include -#include /* For SYS_xxx definitions */ -#include -#include -#include -#include "ihklib.h" -#include "mckernel/ihklib_rusage.h" - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - dprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_mem[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 -#define NLOOP 2 - -int main(int argc, char** argv) { - int i, j, ret = 0, ret_ihklib; - void* mem; - int fd; - struct mckernel_rusage rusage; - - fd = open("./file", O_RDWR); - CHKANDJUMP(fd == -1, 255, "open failed\n"); - - for (j = 0; j < NLOOP; j++) { - - mem = mmap(0, sz_mem[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_SHARED, fd, sz_mem[SZ_INDEX] * j); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - *((unsigned long*)mem) = 0x123456789abcdef0; - - ret = syscall(900); - CHKANDJUMP(ret != 0, 255, "syscall failed\n"); - - ret = ihk_os_getrusage(0, &rusage, sizeof(rusage)); - CHKANDJUMP(ret != 0, 255, "ihk_os_getrusage failed\n"); - - for (i = 0; i < IHK_MAX_NUM_PGSIZES; i++) { - printf("memory_stat_rss[%d]=%ld\n", i, rusage.memory_stat_rss[i]); - printf("memory_stat_mapped_file[%d]=%ld\n", i, rusage.memory_stat_mapped_file[i]); - } - printf("memory_max_usage=%ld\n", rusage.memory_max_usage); - printf("memory_kmem_usage=%ld\n", rusage.memory_kmem_usage); - printf("memory_kmem_max_usage=%ld\n", rusage.memory_kmem_max_usage); -#define NUM_NUMA_NODES 2 - for (i = 0; i < NUM_NUMA_NODES; i++) { - printf("memory_numa_stat[%d]=%ld\n", i, rusage.memory_numa_stat[i]); - } -#define NUM_CPUS 2 - for (i = 0; i < NUM_CPUS; i++) { - printf("cpuacct_usage_percpu[%d]=%ld\n", i, rusage.cpuacct_usage_percpu[i]); - } - printf("cpuacct_stat_system=%ld\n", rusage.cpuacct_stat_system); - printf("cpuacct_stat_user=%ld\n", rusage.cpuacct_stat_user); - printf("cpuacct_usage=%ld\n", rusage.cpuacct_usage); - - printf("num_threads=%d\n", rusage.num_threads); - printf("max_num_threads=%d\n", rusage.max_num_threads); - } - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/rusage103.c b/test/rusage/rusage103.c deleted file mode 100644 index 28177f4a..00000000 --- a/test/rusage/rusage103.c +++ /dev/null @@ -1,81 +0,0 @@ -#include -#include -#include -#include /* For SYS_xxx definitions */ -#include "ihklib.h" -#include "mckernel/ihklib_rusage.h" - -#define DEBUG - -#ifdef DEBUG -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#endif - -#define CHKANDJUMP(cond, err, ...) \ - do { \ - if(cond) { \ - dprintf(__VA_ARGS__); \ - ret = err; \ - goto fn_fail; \ - } \ - } while(0) - -int sz_anon[] = { - 4 * (1ULL<<10), - 2 * (1ULL<<20), - 1 * (1ULL<<30), - 134217728}; - -#define SZ_INDEX 0 -#define NLOOP 2 - -int main(int argc, char** argv) { - int i, j, ret = 0, ret_ihklib; - void* mem; - struct mckernel_rusage rusage; - - for (j = 0; j < NLOOP; j++) { - mem = mmap(0, sz_anon[SZ_INDEX], PROT_READ|PROT_WRITE, MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); - CHKANDJUMP(mem == MAP_FAILED, 255, "mmap failed\n"); - *((unsigned long*)mem) = 0x123456789abcdef0; - - ret = syscall(900); - CHKANDJUMP(ret != 0, 255, "syscall failed\n"); - - ret = ihk_os_getrusage(0, &rusage, sizeof(rusage)); - CHKANDJUMP(ret != 0, 255, "ihk_os_getrusage failed\n"); - - for (i = 0; i < IHK_MAX_NUM_PGSIZES; i++) { - printf("memory_stat_rss[%d]=%ld\n", i, rusage.memory_stat_rss[i]); - printf("memory_stat_mapped_file[%d]=%ld\n", i, rusage.memory_stat_mapped_file[i]); - } - printf("memory_max_usage=%ld\n", rusage.memory_max_usage); - printf("memory_kmem_usage=%ld\n", rusage.memory_kmem_usage); - printf("memory_kmem_max_usage=%ld\n", rusage.memory_kmem_max_usage); -#define NUM_NUMA_NODES 2 - for (i = 0; i < NUM_NUMA_NODES; i++) { - printf("memory_numa_stat[%d]=%ld\n", i, rusage.memory_numa_stat[i]); - } -#define NUM_CPUS 2 - for (i = 0; i < NUM_CPUS; i++) { - printf("cpuacct_usage_percpu[%d]=%ld\n", i, rusage.cpuacct_usage_percpu[i]); - } - printf("cpuacct_stat_system=%ld\n", rusage.cpuacct_stat_system); - printf("cpuacct_stat_user=%ld\n", rusage.cpuacct_stat_user); - printf("cpuacct_usage=%ld\n", rusage.cpuacct_usage); - - printf("num_threads=%d\n", rusage.num_threads); - printf("max_num_threads=%d\n", rusage.max_num_threads); - } - fn_exit: - return ret; - fn_fail: - goto fn_exit; -} diff --git a/test/rusage/util.h b/test/rusage/util.h index f33a1868..a21ea7ae 100644 --- a/test/rusage/util.h +++ b/test/rusage/util.h @@ -7,7 +7,7 @@ #define dprintf(...) do { \ char msg[1024]; \ sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __func__, msg); \ + fprintf(stderr, "%s: %s", __func__, msg); \ } while (0) #else #define dprintf(...) do { } while (0) @@ -16,7 +16,7 @@ #define eprintf(...) do { \ char msg[1024]; \ sprintf(msg, __VA_ARGS__); \ - fprintf(stderr, "%s,%s", __func__, msg); \ + fprintf(stderr, "%s: ERROR: %s", __func__, msg); \ } while (0) #define CHKANDJUMP(cond, err, ...) do { \ @@ -36,7 +36,7 @@ printf("[ NG ] "); \ printf(__VA_ARGS__); \ ret = -EINVAL; \ - goto out; \ + goto fn_fail; \ } \ } while (0)