papi_get_dmem_info(3) - Linux man page
Name
PAPI_get_dmem_info - get information about the dynamic memory usageof the current program
Synopsis
C Interface#include <papi.h>int PAPI_get_dmem_info(PAPI_dmem_info_t *dmem);Fortran Interface
#include "fpapi.h"PAPIF_get_dmem_info(C_LONG_LONG(*) dmem, C_INT check)
Description
Note
This function is currently implemented only for the Linux operating system.Arguments
dmem -- Structure (C) or array (Fortran) containing the following values (Fortran values can be accessed using the specified indices):
peak [PAPIF_DMEM_VMPEAK] (Peak size of process image, may be 0 on older Linux systems),
size [PAPIF_DMEM_VMSIZE] (Size of process image),
resident [PAPIF_DMEM_RESIDENT] (Resident set size),
high_water_mark [PAPIF_DMEM_HIGH_WATER] (High water memory usage),
shared [PAPIF_DMEM_SHARED] (Shared memory),
text [PAPIF_DMEM_TEXT] (Memory allocated to code),
library [PAPIF_DMEM_LIBRARY] (Memory allocated to libraries),
heap [PAPIF_DMEM_HEAP] (Size of the heap),
locked [PAPIF_DMEM_LOCKED] (Locked memory),
stack [PAPIF_DMEM_STACK] (Size of the stack)
pagesize [PAPIF_DMEM_PAGESIZE] (Size of a page in bytes),
pte [PAPIF_DMEM_PTE] (Size of page table entries, may be 0 on older Linux systems)
Return Values
On success, this function returns PAPI_OK with the data structure or array values filled in. On error a negative error value is returned.Errors
- PAPI_ESBSTR
- The funtion is not implemented for the current substrate.
- PAPI_EINVAL
- Any value in the structure or array may be undefined as indicated by this error value.
- PAPI_SYS
- A system error occured.
Example
int retval; PAPI_dmem_info_t dmem; if (PAPI_library_init(PAPI_VER_CURRENT) != PAPI_VER_CURRENT) exit(1); retval = PAPI_library_init(PAPI_VER_CURRENT); if (retval != PAPI_VER_CURRENT) handle_error(retval); PAPI_get_dmem_info(&dmem); printf("Peak Mem Size:tt%lld0,dmem.peak); printf("Mem Size:tt%lld0,dmem.size); printf("Mem Resident:tt%lld0,dmem.resident); printf("Peak Resident:t%lld0,dmem.high_water_mark); printf("Mem Shared:tt%lld0,dmem.shared); printf("Mem Text:tt%lld0,dmem.text); printf("Mem Library:tt%lld0,dmem.library); printf("Mem Heap:tt%lld0,dmem.heap); printf("Mem Locked:tt%lld0,dmem.locked); printf("Mem Stack:tt%lld0,dmem.stack); printf("Mem Pagesize:tt%lld0,dmem.pagesize); printf("Mem Page Eable Entries:tt%lld0,dmem.pte);