Scroll to navigation

PAPI_get_dmem_info(3) PAPI PAPI_get_dmem_info(3)

NAME

PAPI_get_dmem_info - get information about the dynamic memory usage of 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

In C, this function takes a pointer to a PAPI_dmem_info_t structure and returns with the structure fields filled in. In Fortran, this function takes a pointer to an array of long_long values and fills in the array on return. A value of PAPI_EINVAL in any field indicates an undefined parameter.

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

The funtion is not implemented for the current substrate.
Any value in the structure or array may be undefined as indicated by this error value.
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:%lld0,dmem.peak);
printf("Mem Size:%lld0,dmem.size);
printf("Mem Resident:%lld0,dmem.resident);
printf("Peak Resident:%lld0,dmem.high_water_mark);
printf("Mem Shared:%lld0,dmem.shared);
printf("Mem Text:%lld0,dmem.text);
printf("Mem Library:%lld0,dmem.library);
printf("Mem Heap:%lld0,dmem.heap);
printf("Mem Locked:%lld0,dmem.locked);
printf("Mem Stack:%lld0,dmem.stack);
printf("Mem Pagesize:%lld0,dmem.pagesize);
printf("Mem Page Eable Entries:%lld0,dmem.pte);

BUGS

If called before PAPI_library_init() the behavior of the routine is undefined.

SEE ALSO

PAPI_library_init(3), PAPI_get_opt(3), PAPI_get_hardware_info(3), PAPI_get_executable_info(3)

May, 2006 PAPI Programmer's Reference