ihk_os_getrusage(): Add per-page-size memory usage accounting
This commit is contained in:
@ -15,6 +15,7 @@
|
||||
|
||||
#include <arch-lock.h>
|
||||
#include <ihk/memconst.h>
|
||||
#include <ihk/kmsg.h>
|
||||
|
||||
struct ihk_kmsg_buf {
|
||||
int tail;
|
||||
|
||||
@ -22,6 +22,7 @@
|
||||
|
||||
struct memobj;
|
||||
struct process_vm;
|
||||
struct vm_range;
|
||||
|
||||
enum ihk_mc_gma_type {
|
||||
IHK_MC_GMA_MAP_START,
|
||||
@ -178,7 +179,7 @@ int ihk_mc_pt_change_attr_range(page_table_t pt, void *start, void *end,
|
||||
pte_t *ihk_mc_pt_lookup_pte(page_table_t pt, void *virt, int pgshift, void **pgbasep, size_t *pgsizep, int *p2alignp);
|
||||
int ihk_mc_pt_set_range(page_table_t pt, struct process_vm *vm, void *start,
|
||||
void *end, uintptr_t phys, enum ihk_mc_pt_attribute attr,
|
||||
int pgshift);
|
||||
int pgshift, struct vm_range *range);
|
||||
int ihk_mc_pt_set_pte(page_table_t pt, pte_t *ptep, size_t pgsize, uintptr_t phys, enum ihk_mc_pt_attribute attr);
|
||||
int ihk_mc_pt_prepare_map(page_table_t pt, void *virt, unsigned long size,
|
||||
enum ihk_mc_pt_prepare_flag);
|
||||
@ -189,7 +190,7 @@ typedef int pte_visitor_t(void *arg, page_table_t pt, pte_t *ptep,
|
||||
int visit_pte_range(page_table_t pt, void *start, void *end, int pgshift,
|
||||
enum visit_pte_flag flags, pte_visitor_t *funcp, void *arg);
|
||||
int move_pte_range(page_table_t pt, struct process_vm *vm,
|
||||
void *src, void *dest, size_t size);
|
||||
void *src, void *dest, size_t size, struct vm_range *range);
|
||||
|
||||
struct page_table *ihk_mc_pt_create(ihk_mc_ap_flag ap_flag);
|
||||
/* XXX: proper use of struct page_table and page_table_t is unknown */
|
||||
|
||||
@ -1,45 +1,8 @@
|
||||
#ifndef __IHK_RUSAGE_H
|
||||
#define __IHK_RUSAGE_H
|
||||
|
||||
struct ihk_os_cpu_monitor {
|
||||
int status;
|
||||
#define IHK_OS_MONITOR_NOT_BOOT 0
|
||||
#define IHK_OS_MONITOR_IDLE 1
|
||||
#define IHK_OS_MONITOR_USER 2
|
||||
#define IHK_OS_MONITOR_KERNEL 3
|
||||
#define IHK_OS_MONITOR_KERNEL_HEAVY 4
|
||||
#define IHK_OS_MONITOR_KERNEL_OFFLOAD 5
|
||||
#define IHK_OS_MONITOR_KERNEL_FREEZING 8
|
||||
#define IHK_OS_MONITOR_KERNEL_FROZEN 9
|
||||
#define IHK_OS_MONITOR_KERNEL_THAW 10
|
||||
#define IHK_OS_MONITOR_PANIC 99
|
||||
int status_bak;
|
||||
unsigned long counter;
|
||||
unsigned long ocounter;
|
||||
unsigned long user_tsc;
|
||||
unsigned long system_tsc;
|
||||
};
|
||||
|
||||
struct ihk_os_monitor {
|
||||
unsigned long rusage_max_num_threads;
|
||||
unsigned long rusage_num_threads;
|
||||
unsigned long rusage_rss_max;
|
||||
long rusage_rss_current;
|
||||
unsigned long rusage_kmem_usage;
|
||||
unsigned long rusage_kmem_max_usage;
|
||||
unsigned long rusage_hugetlb_usage;
|
||||
unsigned long rusage_hugetlb_max_usage;
|
||||
unsigned long rusage_total_memory;
|
||||
unsigned long rusage_total_memory_usage;
|
||||
unsigned long rusage_total_memory_max_usage;
|
||||
unsigned long num_numa_nodes;
|
||||
unsigned long num_processors;
|
||||
unsigned long ns_per_tsc;
|
||||
unsigned long reserve[128];
|
||||
unsigned long rusage_numa_stat[1024];
|
||||
|
||||
struct ihk_os_cpu_monitor cpu[0];
|
||||
};
|
||||
#include <arch/rusage.h>
|
||||
#include <ihk/monitor.h>
|
||||
|
||||
enum RUSAGE_MEMBER {
|
||||
RUSAGE_RSS,
|
||||
|
||||
Reference in New Issue
Block a user