|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* File: linux-bgq-memory.c
|
|
Packit |
577717 |
* CVS: $Id$
|
|
Packit |
577717 |
* Author: Heike Jagode
|
|
Packit |
577717 |
* jagode@eecs.utk.edu
|
|
Packit |
577717 |
* Mods:
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#include "papi.h"
|
|
Packit |
577717 |
#include "papi_internal.h"
|
|
Packit |
577717 |
#include "linux-bgq.h"
|
|
Packit |
577717 |
#ifdef __LINUX__
|
|
Packit |
577717 |
#include <limits.h>
|
|
Packit |
577717 |
#endif
|
|
Packit |
577717 |
#include <stdio.h>
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Prototypes...
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
int init_bgq( PAPI_mh_info_t * pMem_Info );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
// inline void cpuid(unsigned int *, unsigned int *,unsigned int *,unsigned int *);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Get Memory Information
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* Fills in memory information - effectively set to all 0x00's
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
extern int
|
|
Packit |
577717 |
_bgq_get_memory_info( PAPI_hw_info_t * pHwInfo, int pCPU_Type )
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
int retval = 0;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
switch ( pCPU_Type ) {
|
|
Packit |
577717 |
default:
|
|
Packit |
577717 |
//fprintf(stderr,"Default CPU type in %s (%d)\n",__FUNCTION__,__LINE__);
|
|
Packit |
577717 |
retval = init_bgq( &pHwInfo->mem_hierarchy );
|
|
Packit |
577717 |
break;
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
return retval;
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Get DMem Information for BG/Q
|
|
Packit |
577717 |
*
|
|
Packit |
577717 |
* NOTE: Currently, all values set to -1
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
extern int
|
|
Packit |
577717 |
_bgq_get_dmem_info( PAPI_dmem_info_t * pDmemInfo )
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
// pid_t xPID = getpid();
|
|
Packit |
577717 |
// prpsinfo_t xInfo;
|
|
Packit |
577717 |
// char xFile[256];
|
|
Packit |
577717 |
// int xFD;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
// sprintf(xFile, "/proc/%05d", xPID);
|
|
Packit |
577717 |
// if ((fd = open(xFile, O_RDONLY)) < 0) {
|
|
Packit |
577717 |
// SUBDBG("PAPI_get_dmem_info can't open /proc/%d\n", xPID);
|
|
Packit |
577717 |
// return (PAPI_ESYS);
|
|
Packit |
577717 |
// }
|
|
Packit |
577717 |
// if (ioctl(xFD, PIOCPSINFO, &xInfo) < 0) {
|
|
Packit |
577717 |
// return (PAPI_ESYS);
|
|
Packit |
577717 |
// }
|
|
Packit |
577717 |
// close(xFD);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
pDmemInfo->size = PAPI_EINVAL;
|
|
Packit |
577717 |
pDmemInfo->resident = PAPI_EINVAL;
|
|
Packit |
577717 |
pDmemInfo->high_water_mark = PAPI_EINVAL;
|
|
Packit |
577717 |
pDmemInfo->shared = PAPI_EINVAL;
|
|
Packit |
577717 |
pDmemInfo->text = PAPI_EINVAL;
|
|
Packit |
577717 |
pDmemInfo->library = PAPI_EINVAL;
|
|
Packit |
577717 |
pDmemInfo->heap = PAPI_EINVAL;
|
|
Packit |
577717 |
pDmemInfo->locked = PAPI_EINVAL;
|
|
Packit |
577717 |
pDmemInfo->stack = PAPI_EINVAL;
|
|
Packit |
577717 |
pDmemInfo->pagesize = PAPI_EINVAL;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
return PAPI_OK;
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* Cache configuration for BG/Q
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
int
|
|
Packit |
577717 |
init_bgq( PAPI_mh_info_t * pMem_Info )
|
|
Packit |
577717 |
{
|
|
Packit |
577717 |
memset( pMem_Info, 0x0, sizeof ( *pMem_Info ) );
|
|
Packit |
577717 |
//fprintf(stderr,"mem_info not est up [%s (%d)]\n",__FUNCTION__,__LINE__);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
return PAPI_OK;
|
|
Packit |
577717 |
}
|