rusage: Fix available page sizes

Change-Id: I418075ff4b5341e0f5c7ff317e96461879a60f87
This commit is contained in:
Masamichi Takagi
2018-12-13 13:54:18 +09:00
committed by Dominique Martinet
parent c82c2c1231
commit 6810506c3d
19 changed files with 65 additions and 186 deletions

View File

@ -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) */

View File

@ -44,7 +44,6 @@
#include <config.h>
#include "mcctrl.h"
#include <ihk/ihk_host_user.h>
#include <ihklib_rusage.h>
#include <rusage.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0)
#include <uapi/linux/sched/types.h>
@ -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;
}

View File

@ -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;
};

View File

@ -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")