28#define papi_sensors_ppc_lock() _papi_hwi_lock(COMPONENT_LOCK);
29#define papi_sensors_ppc_unlock() _papi_hwi_unlock(COMPONENT_LOCK);
31typedef struct _sensors_ppc_register {
35typedef struct _sensors_ppc_native_event_entry {
47typedef struct _sensors_ppc_reg_alloc {
53typedef enum occ_sensor_type_e {
65typedef enum occ_sensor_loc_e {
77#define OCC_SENSOR_READING_FULL 0x01
78#define OCC_SENSOR_READING_COUNTER 0x02
90#define OCC_SENSOR_DATA_BLOCK_OFFSET 0x00580000
91#define OCC_SENSOR_DATA_BLOCK_SIZE 0x00025800
92#define OCC_PING_DATA_BLOCK_SIZE 0xA000
93#define OCC_REFRESH_TIME 100000
119#define MAX_CHARS_SENSOR_NAME 16
120#define MAX_CHARS_SENSOR_UNIT 4
172typedef enum occ_sensors_mask_e {
187 ":csm_max",
":profiler_min",
":profiler_max",
":job_scheduler_min",
":job_scheduler_max",
":accumulator", NULL};
189 "Last sample of this sensor",
190 "Minimum value since last OCC reset (node reboot)",
191 "Maximum value since last OCC reset (node reboot)",
192 "Minimum value since last reset request by CSM",
193 "Maximum value since last reset request by CSM",
194 "Minimum value since last reset request by profiler",
195 "Maximum value since last reset request by profiler",
196 "Minimum value since last reset by job scheduler",
197 "Maximum value since last reset by job scheduler",
198 "Accumulator register for this sensor", NULL};
200#define SENSORS_PPC_MAX_COUNTERS MAX_OCCS * 512 * OCC_SENSORS_MASKS
202typedef struct _sensors_ppc_control_state {
209typedef struct _sensors_ppc_context {
static char * pkg_sys_name
static const char * sensors_ppc_fake_qualifiers[]
static mode_t pkg_sys_flag
static long long last_refresh[MAX_OCCS]
struct occ_sensor_data_header_s * occ_hdr[MAX_OCCS]
#define MAX_CHARS_SENSOR_UNIT
@ OCC_SENSOR_TYPE_GENERIC
@ OCC_SENSOR_TYPE_VOLTAGE
@ OCC_SENSOR_TYPE_FREQUENCY
@ OCC_SENSOR_TYPE_UTILIZATION
@ OCC_SENSOR_TYPE_TEMPERATURE
@ OCC_SENSOR_TYPE_CURRENT
@ OCC_SENSOR_TYPE_PERFORMANCE
@ OCC_SENSOR_LOC_PARTITION
@ OCC_SENSOR_LOC_PROCESSOR
#define MAX_CHARS_SENSOR_NAME
static uint32_t * double_pong[MAX_OCCS]
#define SENSORS_PPC_MAX_COUNTERS
@ OCC_SENSORS_PROFILER_MAX
@ OCC_SENSORS_JOB_SCHED_MIN
@ OCC_SENSORS_PROFILER_MIN
@ OCC_SENSORS_JOB_SCHED_MAX
@ OCC_SENSORS_ACCUMULATOR_TAG
static const char * sensors_ppc_fake_qualif_desc[]
static int occ_num_events[MAX_OCCS+1]
struct occ_sensor_name_s * occ_names[MAX_OCCS]
static uint32_t * pong[MAX_OCCS]
static uint32_t * ping[MAX_OCCS]
static uint32_t * double_ping[MAX_OCCS]
unsigned long AO_t __attribute__((__aligned__(4)))
Return codes and api definitions.
char units[MAX_EVENTS][BUFSIZ]
_sensors_ppc_control_state_t state
_sensors_ppc_register_t resources
_sensors_ppc_register_t ra_bits
char name[MAX_CHARS_SENSOR_NAME]
char units[MAX_CHARS_SENSOR_UNIT]
uint16_t job_scheduler_min
uint16_t job_scheduler_max