PAPI  5.0.1.0
dmem_info.c File Reference
Include dependency graph for dmem_info.c:

Go to the source code of this file.

Defines

#define ALLOCMEM   200000

Functions

static void dump_memory_info (FILE *output, PAPI_dmem_info_t *d)
int main (int argc, char **argv)

Define Documentation

#define ALLOCMEM   200000

Definition at line 10 of file dmem_info.c.


Function Documentation

static void dump_memory_info ( FILE *  output,
PAPI_dmem_info_t d 
) [static]

Definition at line 12 of file dmem_info.c.

{
    fprintf( output, "\n--------\n" );
    fprintf( output, "Mem Size:\t\t%lld\n", d->size );
    fprintf( output, "Mem Peak Size:\t\t%lld\n", d->peak );
    fprintf( output, "Mem Resident:\t\t%lld\n", d->resident );
    fprintf( output, "Mem High Water Mark:\t%lld\n", d->high_water_mark );
    fprintf( output, "Mem Shared:\t\t%lld\n", d->shared );
    fprintf( output, "Mem Text:\t\t%lld\n", d->text );
    fprintf( output, "Mem Library:\t\t%lld\n", d->library );
    fprintf( output, "Mem Heap:\t\t%lld\n", d->heap );
    fprintf( output, "Mem Locked:\t\t%lld\n", d->locked );
    fprintf( output, "Mem Stack:\t\t%lld\n", d->stack );
    fprintf( output, "Mem Pagesize:\t\t%lld\n", d->pagesize );
    fprintf( output, "Mem Page Table Entries:\t\t%lld\n", d->pte );
    fprintf( output, "--------\n\n" );
}

Here is the caller graph for this function:

int main ( int  argc,
char **  argv 
)

Definition at line 31 of file dmem_info.c.

{
    PAPI_dmem_info_t dmem;
    long long value[7];
    int retval, i = 0, j = 0;
    double *m[7];

    tests_quiet( argc, argv );  /* Set TESTS_QUIET variable */
    retval = PAPI_library_init( PAPI_VER_CURRENT );
    if ( retval != PAPI_VER_CURRENT )
        test_fail( __FILE__, __LINE__, "PAPI_library_init", retval );

    for ( i = 0; i < 7; i++ ) {
        retval = PAPI_get_dmem_info( &dmem );
        if ( retval != PAPI_OK )
            test_fail( __FILE__, __LINE__, "PAPI_get_dmem_info", retval );
/*     dump_memory_info(stdout,&dmem); */
        value[i] = dmem.size;
        m[i] = ( double * ) malloc( ALLOCMEM * sizeof ( double ) );
        touch_dummy( m[j], ALLOCMEM );
    }

    if ( !TESTS_QUIET ) {
        printf( "Test case:  Dynamic Memory Information.\n" );
        dump_memory_info( stdout, &dmem );
        printf
            ( "------------------------------------------------------------------------\n" );
        for ( i = 0; i < 7; i++ )
            printf( "Malloc additional: %d KB  Memory Size in KB: %d\n",
                    ( int ) ( ( sizeof ( double ) * ALLOCMEM ) / 1024 ),
                    ( int ) value[i] );
        printf
            ( "------------------------------------------------------------------------\n" );
    }
    if ( value[6] >= value[5] && value[5] >= value[4] && value[4] >= value[3]
         && value[3] >= value[2] && value[2] >= value[1] &&
         value[1] >= value[0] )
        test_pass( __FILE__, NULL, 0 );
    else
        test_fail( __FILE__, __LINE__, "Calculating Resident Memory",
                   ( int ) value[6] );

    exit( 1 );
}

Here is the call graph for this function:

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines