NAME

PAPI_get_dmem_info - get information about the dynamic memory usage of the current program

CONTENTS

Synopsis
Description
Note
Arguments
Return Values
Errors
Example
Bugs
See Also

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):

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),

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("Mem Size:            %lld0,dmem.size); printf("Mem Resident:                %lld0,dmem.resident); printf("Mem High Water Mark: %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);

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)


PAPI Programmer’s Reference PAPI_get_dmem_info (3) May, 2006

  Innovative Computing Laboratory
2001 R&D Winner  
Contact PAPI: papi@cs.utk.edu Computer Science Department
  University of Tennessee