diff --git a/arch/arm64/kernel/include/arch/rusage.h b/arch/arm64/kernel/include/arch/rusage.h deleted file mode 100644 index 01063a67..00000000 --- a/arch/arm64/kernel/include/arch/rusage.h +++ /dev/null @@ -1,60 +0,0 @@ -#ifndef ARCH_RUSAGE_H_INCLUDED -#define ARCH_RUSAGE_H_INCLUDED - -#define DEBUG_RUSAGE - -#define IHK_OS_PGSIZE_4KB 0 -#define IHK_OS_PGSIZE_2MB 1 -#define IHK_OS_PGSIZE_1GB 2 - -extern struct ihk_os_monitor *monitor; - -extern int sprintf(char * buf, const char *fmt, ...); - -#define DEBUG_ARCH_RUSAGE -#ifdef DEBUG_ARCH_RUSAGE -#define dprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - kprintf("%s,%s", __FUNCTION__, msg); \ - } while (0); -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - kprintf("%s,%s", __FUNCTION__, msg); \ - } while (0); -#else -#define dprintf(...) do { } while (0) -#define eprintf(...) \ - do { \ - char msg[1024]; \ - sprintf(msg, __VA_ARGS__); \ - kprintf("%s,%s", __FUNCTION__, msg); \ - } while (0); -#endif - -static inline int rusage_pgsize_to_pgtype(size_t pgsize) -{ - int ret = IHK_OS_PGSIZE_4KB; -#if 0 /* postk-TODO */ - switch (pgsize) { - case PTL1_SIZE: - ret = IHK_OS_PGSIZE_4KB; - break; - case PTL2_SIZE: - ret = IHK_OS_PGSIZE_2MB; - break; - case PTL3_SIZE: - ret = IHK_OS_PGSIZE_1GB; - break; - default: - eprintf("unknown pgsize=%ld\n", pgsize); - break; - } -#endif - return ret; -} - -#endif /* !defined(ARCH_RUSAGE_H_INCLUDED) */ diff --git a/arch/arm64/kernel/include/arch_rusage.h b/arch/arm64/kernel/include/arch_rusage.h deleted file mode 100644 index 3be7e89c..00000000 --- a/arch/arm64/kernel/include/arch_rusage.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef ARCH_RUSAGE_H_INCLUDED -#define ARCH_RUSAGE_H_INCLUDED - -#include - -#define DEBUG_RUSAGE - -#define IHK_OS_PGSIZE_4KB 0 -#define IHK_OS_PGSIZE_2MB 1 -#define IHK_OS_PGSIZE_1GB 2 - -extern struct rusage_global rusage; - -static inline int rusage_pgsize_to_pgtype(size_t pgsize) -{ - int ret = IHK_OS_PGSIZE_4KB; - - if (pgsize == PTL1_SIZE) { - ret = IHK_OS_PGSIZE_4KB; - } - else if (pgsize == PTL2_SIZE) { - ret = IHK_OS_PGSIZE_2MB; - } - else if (pgsize == PTL3_SIZE) { - ret = IHK_OS_PGSIZE_1GB; - } - else { - kprintf("%s: Error: Unknown pgsize=%ld\n", __FUNCTION__, pgsize); - } - return ret; -} - -#endif /* !defined(ARCH_RUSAGE_H_INCLUDED) */ diff --git a/arch/x86_64/kernel/include/arch_rusage.h b/arch/x86_64/kernel/include/arch_rusage.h deleted file mode 100644 index ccdaddcf..00000000 --- a/arch/x86_64/kernel/include/arch_rusage.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef ARCH_RUSAGE_H_INCLUDED -#define ARCH_RUSAGE_H_INCLUDED - -#define DEBUG_RUSAGE - -#define IHK_OS_PGSIZE_4KB 0 -#define IHK_OS_PGSIZE_2MB 1 -#define IHK_OS_PGSIZE_1GB 2 - -extern struct rusage_global rusage; - -static inline int rusage_pgsize_to_pgtype(size_t pgsize) -{ - int ret = IHK_OS_PGSIZE_4KB; - switch (pgsize) { - case PTL1_SIZE: - ret = IHK_OS_PGSIZE_4KB; - break; - case PTL2_SIZE: - ret = IHK_OS_PGSIZE_2MB; - break; - case PTL3_SIZE: - ret = IHK_OS_PGSIZE_1GB; - break; - default: - kprintf("%s: Error: Unknown pgsize=%ld\n", __FUNCTION__, pgsize); - break; - } - return ret; -} - -#endif /* !defined(ARCH_RUSAGE_H_INCLUDED) */ diff --git a/executer/include/ihklib_rusage.h b/executer/include/ihklib_rusage.h deleted file mode 100644 index b5cb6631..00000000 --- a/executer/include/ihklib_rusage.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef IHKLIB_RUSAGE_H_INCLUDED -#define IHKLIB_RUSAGE_H_INCLUDED - -#define IHK_MAX_NUM_PGSIZES 4 -#define IHK_MAX_NUM_NUMA_NODES 1024 -#define IHK_MAX_NUM_CPUS 1024 - -#define IHK_OS_PGSIZE_4KB 0 -#define IHK_OS_PGSIZE_2MB 1 -#define IHK_OS_PGSIZE_1GB 2 - -struct mckernel_rusage { - unsigned long memory_stat_rss[IHK_MAX_NUM_PGSIZES]; - unsigned long memory_stat_mapped_file[IHK_MAX_NUM_PGSIZES]; - unsigned long memory_max_usage; - unsigned long memory_kmem_usage; - unsigned long memory_kmem_max_usage; - unsigned long memory_numa_stat[IHK_MAX_NUM_NUMA_NODES]; - unsigned long cpuacct_stat_system; - unsigned long cpuacct_stat_user; - unsigned long cpuacct_usage; - unsigned long cpuacct_usage_percpu[IHK_MAX_NUM_CPUS]; - int num_threads; - int max_num_threads; -}; - -#endif /* !defined(IHKLIB_RUSAGE_H_INCLUDED) */ diff --git a/executer/kernel/mcctrl/control.c b/executer/kernel/mcctrl/control.c index 688f8201..29cfa07e 100644 --- a/executer/kernel/mcctrl/control.c +++ b/executer/kernel/mcctrl/control.c @@ -44,7 +44,6 @@ #include #include "mcctrl.h" #include -#include #include #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) #include @@ -2376,7 +2375,7 @@ long mcctrl_getrusage(ihk_os_t ihk_os, struct mcctrl_ioctl_getrusage_desc *__use { struct mcctrl_ioctl_getrusage_desc desc; struct rusage_global *rusage_global = ihk_os_get_rusage(ihk_os); - struct mckernel_rusage *rusage = NULL; + struct ihk_os_rusage *rusage = NULL; int ret = 0; int i; unsigned long ut; @@ -2388,13 +2387,13 @@ long mcctrl_getrusage(ihk_os_t ihk_os, struct mcctrl_ioctl_getrusage_desc *__use goto out; } - rusage = kmalloc(sizeof(struct mckernel_rusage), GFP_KERNEL); + rusage = kmalloc(sizeof(struct ihk_os_rusage), GFP_KERNEL); if (!rusage) { printk("%s: kmalloc failed\n", __FUNCTION__); ret = -ENOMEM; goto out; } - memset(rusage, 0, sizeof(struct mckernel_rusage)); + memset(rusage, 0, sizeof(struct ihk_os_rusage)); /* Compile statistics */ for (i = 0; i < IHK_MAX_NUM_PGSIZES; i++) { @@ -2422,8 +2421,10 @@ long mcctrl_getrusage(ihk_os_t ihk_os, struct mcctrl_ioctl_getrusage_desc *__use rusage->num_threads = rusage_global->num_threads; rusage->max_num_threads = rusage_global->max_num_threads; - if (desc.size_rusage > sizeof(struct mckernel_rusage)) { - printk("%s: desc.size_rusage=%ld > sizeof(struct mckernel_rusage)=%ld\n", __FUNCTION__, desc.size_rusage, sizeof(struct mckernel_rusage)); + if (desc.size_rusage > sizeof(struct ihk_os_rusage)) { + printk("%s: desc.size_rusage=%ld > sizeof(struct mckernel_rusage)=%ld\n", + __func__, desc.size_rusage, + sizeof(struct ihk_os_rusage)); ret = -EINVAL; goto out; } diff --git a/executer/kernel/mcctrl/mcctrl.h b/executer/kernel/mcctrl/mcctrl.h index d26d504c..f562bdf4 100644 --- a/executer/kernel/mcctrl/mcctrl.h +++ b/executer/kernel/mcctrl/mcctrl.h @@ -555,7 +555,7 @@ struct ihk_perf_event_attr{ }; struct mcctrl_ioctl_getrusage_desc { - void* rusage; + struct ihk_os_rusage *rusage; size_t size_rusage; }; diff --git a/executer/user/CMakeLists.txt b/executer/user/CMakeLists.txt index a79ff3fd..545d5a48 100644 --- a/executer/user/CMakeLists.txt +++ b/executer/user/CMakeLists.txt @@ -77,7 +77,7 @@ install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/vmcore2mckdump" DESTINATION "${CMAKE_INSTALL_BINDIR}") install(TARGETS sched_yield ldump2mcdump DESTINATION "${CMAKE_INSTALL_LIBDIR}") -install(FILES "../include/ihklib_rusage.h" - DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/mckernel") +install(FILES "${IHK_FULL_SOURCE_DIR}/linux/include/ihk/ihk_rusage.h" + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/ihk") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/mcexec.1" DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") diff --git a/ihk b/ihk index 58ed04c5..fc5807c1 160000 --- a/ihk +++ b/ihk @@ -1 +1 @@ -Subproject commit 58ed04c57142a5c8a7894cd20103078827b0e780 +Subproject commit fc5807c12e06df8526aefdd32e95f359472e3b4d diff --git a/kernel/include/rusage.h b/kernel/include/rusage.h index 97d9573e..ede6c198 100644 --- a/kernel/include/rusage.h +++ b/kernel/include/rusage.h @@ -3,11 +3,50 @@ #ifndef __RUSAGE_H #define __RUSAGE_H +#include + //#define RUSAGE_DEBUG -#define IHK_MAX_NUM_PGSIZES 4 -#define IHK_MAX_NUM_NUMA_NODES 1024 -#define IHK_MAX_NUM_CPUS 1024 +extern struct rusage_global rusage; + +static inline int rusage_pgsize_to_pgtype(size_t pgsize) +{ + int ret = IHK_OS_PGSIZE_4KB; + int pgshift = pgsize_to_pgshift(pgsize); + + switch (pgshift) { + case 12: + ret = IHK_OS_PGSIZE_4KB; + break; + case 16: + ret = IHK_OS_PGSIZE_64KB; + break; + case 21: + ret = IHK_OS_PGSIZE_2MB; + break; + case 25: + ret = IHK_OS_PGSIZE_32MB; + break; + case 30: + ret = IHK_OS_PGSIZE_1GB; + break; + case 34: + ret = IHK_OS_PGSIZE_16GB; + break; + case 29: + ret = IHK_OS_PGSIZE_512MB; + break; + case 42: + ret = IHK_OS_PGSIZE_4TB; + break; + default: + kprintf("%s: Error: Unknown pgsize=%ld\n", + __func__, pgsize); + break; + } + + return ret; +} struct rusage_percpu { unsigned long user_tsc; @@ -36,7 +75,7 @@ struct rusage_global { #ifdef RUSAGE_DEBUG unsigned long total_memory_max_usage_old; /* debug */ #endif - /* Used for translating results into struct mckernel_rusage */ + /* Used for translating results into struct ihk_os_rusage */ unsigned long num_numa_nodes; unsigned long num_processors; unsigned long ns_per_tsc; diff --git a/kernel/include/rusage_private.h b/kernel/include/rusage_private.h index cfa10faa..9d4a6a91 100644 --- a/kernel/include/rusage_private.h +++ b/kernel/include/rusage_private.h @@ -9,7 +9,6 @@ #include #include #include -#include #include #ifdef ENABLE_RUSAGE diff --git a/scripts/mckernel.spec.in b/scripts/mckernel.spec.in index 6b8a29a0..9eab0c9b 100644 --- a/scripts/mckernel.spec.in +++ b/scripts/mckernel.spec.in @@ -84,7 +84,7 @@ Interface for Heterogeneous Kernels and McKernel. %{_libdir}/libldump2mcdump.so %{_includedir}/ihklib.h %{_includedir}/ihk/affinity.h -%{_includedir}/mckernel/ihklib_rusage.h +%{_includedir}/ihk/ihk_rusage.h %{_sysconfdir}/irqbalance_mck.in %{_sysconfdir}/irqbalance_mck.service %{_mandir}/man1/mcreboot.1.gz diff --git a/test/mcstat/arm64/get_rusage.c b/test/mcstat/arm64/get_rusage.c index 75e3ec8e..9f619d4b 100644 --- a/test/mcstat/arm64/get_rusage.c +++ b/test/mcstat/arm64/get_rusage.c @@ -3,7 +3,6 @@ #include #include #include -#include static void usage(char *cmd) { @@ -16,7 +15,7 @@ int main(int argc, char *argv[]) int os_num = 0; int ret = -1; int i = 0; - struct mckernel_rusage mck_rusage; + struct ihk_os_rusage mck_rusage; if (argc != 2) { usage(argv[0]); diff --git a/test/mng_mod/issues/898_928/arm64/ihklib001_lin.c b/test/mng_mod/issues/898_928/arm64/ihklib001_lin.c index f15bc27f..a2d9f5be 100644 --- a/test/mng_mod/issues/898_928/arm64/ihklib001_lin.c +++ b/test/mng_mod/issues/898_928/arm64/ihklib001_lin.c @@ -6,7 +6,6 @@ #include #include #include -#include #include "util.h" #include "mck_bps_conflict.h" @@ -37,7 +36,7 @@ int main(int argc, char **argv) unsigned long memfree[4]; int num_pgsizes; long pgsizes[3]; - struct mckernel_rusage rusage; + struct ihk_os_rusage rusage; char *retstr; int boot_shutdown = 0; int mcexec_shutdown = 0; diff --git a/test/rusage/100_mck.c b/test/rusage/100_mck.c index 1f1e96e7..bb92cd71 100644 --- a/test/rusage/100_mck.c +++ b/test/rusage/100_mck.c @@ -4,7 +4,6 @@ #include /* For SYS_xxx definitions */ #include "util.h" #include "ihklib.h" -#include "mckernel/ihklib_rusage.h" #define DEBUG @@ -21,7 +20,7 @@ int main(int argc, char **argv) { int i, j, ret = 0; void *mem; - struct mckernel_rusage rusage; + struct ihk_os_rusage rusage; for (j = 0; j < NLOOP; j++) { mem = mmap(0, sz_anon[SZ_INDEX], PROT_READ | PROT_WRITE, diff --git a/test/rusage/101_mck.c b/test/rusage/101_mck.c index f0df5d14..634b1fbd 100644 --- a/test/rusage/101_mck.c +++ b/test/rusage/101_mck.c @@ -6,7 +6,6 @@ #include /* For SYS_xxx definitions */ #include "util.h" #include "ihklib.h" -#include "mckernel/ihklib_rusage.h" #define DEBUG @@ -23,7 +22,7 @@ int main(int argc, char **argv) { int i, j, ret = 0; void *mem; - struct mckernel_rusage rusage; + struct ihk_os_rusage rusage; pid_t pid; int status; diff --git a/test/rusage/102_mck.c b/test/rusage/102_mck.c index 1bb29b93..16945392 100644 --- a/test/rusage/102_mck.c +++ b/test/rusage/102_mck.c @@ -7,7 +7,6 @@ #include #include "util.h" #include "ihklib.h" -#include "mckernel/ihklib_rusage.h" #define DEBUG @@ -25,7 +24,7 @@ int main(int argc, char **argv) int i, j, ret = 0; void *mem; int fd; - struct mckernel_rusage rusage; + struct ihk_os_rusage rusage; fd = open("./file", O_RDWR); CHKANDJUMP(fd == -1, 255, "open failed\n"); diff --git a/test/rusage/103_mck.c b/test/rusage/103_mck.c index b0deb9f2..e6641dd4 100644 --- a/test/rusage/103_mck.c +++ b/test/rusage/103_mck.c @@ -4,7 +4,6 @@ #include /* For SYS_xxx definitions */ #include "util.h" #include "ihklib.h" -#include "mckernel/ihklib_rusage.h" #define DEBUG @@ -21,7 +20,7 @@ int main(int argc, char **argv) { int i, j, ret = 0; void *mem; - struct mckernel_rusage rusage; + struct ihk_os_rusage rusage; for (j = 0; j < NLOOP; j++) { mem = mmap(0, sz_anon[SZ_INDEX], PROT_READ | PROT_WRITE, diff --git a/test/rusage/200_lin.c b/test/rusage/200_lin.c index aec6f7fe..26fb4007 100644 --- a/test/rusage/200_lin.c +++ b/test/rusage/200_lin.c @@ -4,7 +4,6 @@ #include #include #include "ihklib.h" -#include "mckernel/ihklib_rusage.h" #include "util.h" #define DELAY0 (100UL * 1000 * 1000) @@ -15,7 +14,7 @@ int main(int argc, char **argv) { int ret = 0; - struct mckernel_rusage rusage; + struct ihk_os_rusage rusage; if ((ret = ihk_os_getrusage(0, &rusage, sizeof(rusage)))) { fprintf(stderr, "%s: ihk_os_getrusage failed\n", __func__); diff --git a/tools/mcstat/mcstat.c b/tools/mcstat/mcstat.c index d4a5bb02..13f3ffbe 100644 --- a/tools/mcstat/mcstat.c +++ b/tools/mcstat/mcstat.c @@ -18,8 +18,7 @@ #include #include -#undef IHK_MAX_NUM_NUMA_NODES -#include // mckernel_rusage is defined here +#include // ihk_os_rusage is defined here #define MAX_CPUS 256 #define MiB100 (100*1024*1024) // 100 MiB @@ -29,7 +28,7 @@ #define UPDATE_COUNTER(c) (c = (c + 1) % 10) struct my_rusage { - struct mckernel_rusage rusage; + struct ihk_os_rusage rusage; /* Initial amount posted to allocator. Note that the amount * used before the initialization is not included. @@ -137,7 +136,7 @@ mygetrusage(int idx, struct my_rusage *rbp) unsigned long *memtotal = NULL; rc = ihk_os_getrusage(idx, &rbp->rusage, - sizeof(struct mckernel_rusage)); + sizeof(struct ihk_os_rusage)); if (rc) { printf("%s: error: ihk_os_getrusage: %s\n", __func__, strerror(-rc));