Files
mckernel/kernel/include/rusage.h
Masamichi Takagi 6810506c3d rusage: Fix available page sizes
Change-Id: I418075ff4b5341e0f5c7ff317e96461879a60f87
2019-02-22 14:08:18 +09:00

85 lines
1.8 KiB
C

/* Interface toward kernel and mcctrl */
#ifndef __RUSAGE_H
#define __RUSAGE_H
#include <ihk/ihk_rusage.h>
//#define RUSAGE_DEBUG
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;
unsigned long system_tsc;
};
struct rusage_global {
/* Memory usage accounting */
long memory_stat_rss[IHK_MAX_NUM_PGSIZES];
long memory_stat_mapped_file[IHK_MAX_NUM_PGSIZES];
long rss_current; /* anon && user, used only for memory_max_usage */
unsigned long memory_max_usage;
unsigned long max_num_threads;
unsigned long num_threads;
unsigned long memory_kmem_usage;
unsigned long memory_kmem_max_usage;
unsigned long memory_numa_stat[IHK_MAX_NUM_NUMA_NODES];
/* CPU usage accounting */
struct rusage_percpu cpu[IHK_MAX_NUM_CPUS]; /* clv[i].monitor = &cpu[i] */
/* OOM monitoring */
unsigned long total_memory;
unsigned long total_memory_usage;
unsigned long total_memory_max_usage;
#ifdef RUSAGE_DEBUG
unsigned long total_memory_max_usage_old; /* debug */
#endif
/* Used for translating results into struct ihk_os_rusage */
unsigned long num_numa_nodes;
unsigned long num_processors;
unsigned long ns_per_tsc;
};
#endif