PAPI 7.1.0.0
Loading...
Searching...
No Matches
perfnec/perfmon.c File Reference
Include dependency graph for perfnec/perfmon.c:

Go to the source code of this file.

Macros

#define PFNECLIB_MAX_PMDS   32
 
#define MAX_COUNTERS   PFMLIB_MAX_PMCS
 
#define MAX_COUNTER_TERMS   PFMLIB_MAX_PMCS
 
#define PFM_MAX_PMCDS   20
 
#define BPL   (sizeof(uint64_t)<<3)
 
#define LBPL   6
 

Typedefs

typedef pfnec_control_state_t cmp_control_state_t
 
typedef pfnec_context_t cmp_context_t
 

Functions

static int check_pmmr (void)
 
static uint64_t diff56 (uint64_t after, uint64_t before)
 
static uint64_t diff52 (uint64_t after, uint64_t before)
 
static int _papi_pfnec_set_overflow (EventSetInfo_t *ESI, int EventIndex, int threshold)
 
static void dump_smpl_arg (pfnec_dfl_smpl_arg_t *arg)
 
static void dump_sets (pfarg_setdesc_t *set, int num_sets)
 
static void dump_setinfo (pfarg_setinfo_t *setinfo, int num_sets)
 
static void dump_pmc (pfnec_control_state_t *ctl)
 
static void dump_pmd (pfnec_control_state_t *ctl)
 
static void dump_smpl_hdr (pfnec_dfl_smpl_hdr_t *hdr)
 
static void dump_smpl (pfnec_dfl_smpl_entry_t *entry)
 
static int _papi_pfnec_write_pmcs (pfnec_context_t *ctx, pfnec_control_state_t *ctl)
 
static int _papi_pfnec_write_pmds (pfnec_context_t *ctx, pfnec_control_state_t *ctl)
 
static int _papi_pfnec_read_pmds (pfnec_context_t *ctx, pfnec_control_state_t *ctl)
 
static int check_multiplex_timeout (int ctx_fd, unsigned long *timeout_ns)
 
static int detect_timeout_and_unavail_pmu_regs (pfneclib_regmask_t *r_pmcs, pfneclib_regmask_t *r_pmds, unsigned long *timeout_ns)
 
static int compute_kernel_args (hwd_control_state_t *ctl0)
 
static int attach (hwd_control_state_t *ctl, unsigned long tid)
 
static int detach (hwd_context_t *ctx, hwd_control_state_t *ctl)
 
static int set_domain (hwd_control_state_t *ctl, int domain)
 
static int set_granularity (hwd_control_state_t *this_state, int domain)
 
static int set_inherit (int arg)
 
static int get_string_from_file (char *file, char *str, int len)
 
static int _papi_pfnec_init_component (int cidx)
 
static int _papi_pfnec_shutdown_component ()
 
static int _papi_pfnec_init_thread (hwd_context_t *thr_ctx)
 
static int _papi_pfnec_reset (hwd_context_t *ctx, hwd_control_state_t *ctl)
 
static int _papi_pfnec_write (hwd_context_t *ctx, hwd_control_state_t *ctl, long long *from)
 
static int _papi_pfnec_read (hwd_context_t *ctx, hwd_control_state_t *ctl, long long **events, int flags)
 
static int _papi_pfnec_start (hwd_context_t *ctx0, hwd_control_state_t *ctl0)
 
static int _papi_pfnec_stop (hwd_context_t *ctx0, hwd_control_state_t *ctl0)
 
static int round_requested_ns (int ns)
 
static int _papi_pfnec_ctl (hwd_context_t *ctx, int code, _papi_int_option_t *option)
 
static int _papi_pfnec_shutdown (hwd_context_t *ctx0)
 
static int find_profile_index (EventSetInfo_t *ESI, int pmd, int *flags, unsigned int *native_index, int *profile_index)
 
static void pfnec_bv_set (uint64_t *bv, uint16_t rnum)
 
static int setup_ear_event (unsigned int native_index, pfarg_pmd_t *pd, int flags)
 
static int process_smpl_entry (unsigned int native_pfnec_index, int flags, pfnec_dfl_smpl_entry_t **ent, vptr_t *pc)
 
static int process_smpl_buf (int num_smpl_pmds, int entry_size, ThreadInfo_t **thr)
 
static void _papi_pfnec_dispatch_timer (int n, hwd_siginfo_t *info, void *uc)
 
static int _papi_pfnec_stop_profiling (ThreadInfo_t *thread, EventSetInfo_t *ESI)
 
static int _papi_pfnec_set_profile (EventSetInfo_t *ESI, int EventIndex, int threshold)
 
static int _papi_pfnec_init_control_state (hwd_control_state_t *ctl)
 
static int _papi_pfnec_allocate_registers (EventSetInfo_t *ESI)
 
static int _papi_pfnec_update_control_state (hwd_control_state_t *ctl, NativeInfo_t *native, int count, hwd_context_t *ctx)
 
static int _perfnec_ntv_enum_events (unsigned int *EventCode, int modifier)
 
static int _perfnec_ntv_code_to_name (unsigned int EventCode, char *name, int len)
 
static int _perfnec_ntv_code_to_info (unsigned int EventCode, PAPI_event_info_t *info)
 
static int _perfnec_ntv_name_to_code (const char *name, unsigned int *EventCode)
 

Variables

static int num_events =0
 
papi_vector_t _perfnec_vector
 
static int _perfnec_pfnec_pmu_type = -1
 

Macro Definition Documentation

◆ BPL

#define BPL   (sizeof(uint64_t)<<3)

Definition at line 388 of file perfnec/perfmon.c.

◆ LBPL

#define LBPL   6

Definition at line 389 of file perfnec/perfmon.c.

◆ MAX_COUNTER_TERMS

#define MAX_COUNTER_TERMS   PFMLIB_MAX_PMCS

Definition at line 67 of file perfnec/perfmon.c.

◆ MAX_COUNTERS

#define MAX_COUNTERS   PFMLIB_MAX_PMCS

Definition at line 66 of file perfnec/perfmon.c.

◆ PFM_MAX_PMCDS

#define PFM_MAX_PMCDS   20

Definition at line 126 of file perfnec/perfmon.c.

◆ PFNECLIB_MAX_PMDS

#define PFNECLIB_MAX_PMDS   32

Definition at line 37 of file perfnec/perfmon.c.

Typedef Documentation

◆ cmp_context_t

Definition at line 72 of file perfnec/perfmon.c.

◆ cmp_control_state_t

Definition at line 71 of file perfnec/perfmon.c.

Function Documentation

◆ _papi_pfnec_allocate_registers()

static int _papi_pfnec_allocate_registers ( EventSetInfo_t ESI)
static

Definition at line 453 of file perfnec/perfmon.c.

454{
455 return PAPI_OK;
456}
#define PAPI_OK
Definition: f90papi.h:73

◆ _papi_pfnec_ctl()

static int _papi_pfnec_ctl ( hwd_context_t ctx,
int  code,
_papi_int_option_t option 
)
static

Definition at line 368 of file perfnec/perfmon.c.

369{
370 return ( PAPI_OK );
371}

◆ _papi_pfnec_dispatch_timer()

static void _papi_pfnec_dispatch_timer ( int  n,
hwd_siginfo_t info,
void *  uc 
)
static

Definition at line 420 of file perfnec/perfmon.c.

421{
422}

◆ _papi_pfnec_init_component()

static int _papi_pfnec_init_component ( int  cidx)
static

Definition at line 215 of file perfnec/perfmon.c.

216{
217 int e;
218 num_events = 0;
219 int status = check_pmmr();
220 if (PAPI_OK != status) {
221 // do something smart to disable components
222 fprintf(stderr, "Placeholder: component disabled, error in check_pmmr\n");
223 }
224 for ( e = 0; e < PKG_NUM_EVENTS; ++e ) {
225 /* compose string to individual event */
226 size_t ret;
227
228 ret = snprintf(perfnec_ntv_events[num_events].name,
230 "%s", pkg_event_names[e]);
231 if (ret <= 0 || sizeof(perfnec_ntv_events[num_events].name) <= ret) continue;
232 ret = snprintf(perfnec_ntv_events[num_events].description,
233 sizeof(perfnec_ntv_events[num_events].description),
234 "%s", pkg_event_descs[e]);
235 if (ret <= 0 || sizeof(perfnec_ntv_events[num_events].description) <= ret) continue;
236 ret = snprintf(perfnec_ntv_events[num_events].units,
238 "%s", pkg_units[e]);
239 if (ret < 0 || sizeof(perfnec_ntv_events[num_events].name) <= ret) continue;
240
243
245
246 num_events++;
247 }
248
249 // this is statically decided so far.
253
255
256 return PAPI_OK;
257}
#define PAPI_DATATYPE_INT64
Definition: f90papi.h:227
FILE * stderr
static int cidx
static int num_events
papi_vector_t _perfnec_vector
static int check_pmmr(void)
#define PKG_NUM_EVENTS
Definition: perfnec.h:56
static _perfnec_native_event_entry_t perfnec_ntv_events[PKG_NUM_EVENTS]
Definition: perfnec.h:103
static const char * pkg_event_descs[PKG_NUM_EVENTS]
Definition: perfnec.h:69
static int pkg_events[PKG_NUM_EVENTS]
Definition: perfnec.h:59
static const char * pkg_units[PKG_NUM_EVENTS]
Definition: perfnec.h:64
static const char * pkg_event_names[PKG_NUM_EVENTS]
Definition: perfnec.h:61
char units[MAX_EVENTS][BUFSIZ]
Definition: powercap_plot.c:15
const char * name
Definition: rocs.c:225
int return_type
Definition: perfnec.h:99
_perfnec_register_t resources
Definition: perfnec.h:100
int type
Definition: perfnec.h:98
unsigned int selector
Definition: perfnec.h:88
PAPI_component_info_t cmp_info
Definition: papi_vector.h:20
Here is the call graph for this function:

◆ _papi_pfnec_init_control_state()

static int _papi_pfnec_init_control_state ( hwd_control_state_t ctl)
static

Definition at line 445 of file perfnec/perfmon.c.

446{
448 memset( control, 0, sizeof ( _perfnec_control_state_t ) );
449 return ( PAPI_OK );
450}

◆ _papi_pfnec_init_thread()

static int _papi_pfnec_init_thread ( hwd_context_t thr_ctx)
static

Definition at line 266 of file perfnec/perfmon.c.

267{
268 return ( PAPI_OK );
269}

◆ _papi_pfnec_read()

static int _papi_pfnec_read ( hwd_context_t ctx,
hwd_control_state_t ctl,
long long **  events,
int  flags 
)
static

Definition at line 287 of file perfnec/perfmon.c.

289{
290 uint64_t pmc[16];
291 asm volatile(
292 "smir %0,%pmc00\n"
293 "smir %1,%pmc01\n"
294 "smir %2,%pmc02\n"
295 "smir %3,%pmc03\n"
296 "smir %4,%pmc04\n"
297 "smir %5,%pmc05\n"
298 "smir %6,%pmc06\n"
299 "smir %7,%pmc07\n"
300 "smir %8,%pmc08\n"
301 "smir %9,%pmc09\n"
302 "smir %10,%pmc10\n"
303 "smir %11,%pmc11\n"
304 "smir %12,%pmc12\n"
305 "smir %13,%pmc13\n"
306 "smir %14,%pmc14\n"
307 "smir %15,%pmc15\n"
308 :"=r"(pmc[0]),
309 "=r"(pmc[1]),
310 "=r"(pmc[2]),
311 "=r"(pmc[3]),
312 "=r"(pmc[4]),
313 "=r"(pmc[5]),
314 "=r"(pmc[6]),
315 "=r"(pmc[7]),
316 "=r"(pmc[8]),
317 "=r"(pmc[9]),
318 "=r"(pmc[10]),
319 "=r"(pmc[11]),
320 "=r"(pmc[12]),
321 "=r"(pmc[13]),
322 "=r"(pmc[14]),
323 "=r"(pmc[15])
324 :);
325
326 (void) flags;
327 (void) ctx;
329
330 long long curr_val = 0;
331
332 int c, i;
333 for( c = 0; c < control->active_counters; c++ ) {
334 i = control->which_counter[c];
335 curr_val = pmc[i];
336 SUBDBG("%d, current value %lld\n", i, curr_val);
337 control->count[c]=curr_val;
338 }
339
340 *events = ( ( _perfnec_control_state_t* ) ctl )->count;
341
342 return PAPI_OK;
343}
int i
char events[MAX_EVENTS][BUFSIZ]
static double c[MATRIX_SIZE][MATRIX_SIZE]
Definition: libmsr_basic.c:40
#define SUBDBG(format, args...)
Definition: papi_debug.h:64
long long count[PFNECLIB_MAX_PMDS]
Definition: perfnec.h:127
long long which_counter[PKG_NUM_EVENTS]
Definition: perfnec.h:129

◆ _papi_pfnec_read_pmds()

static int _papi_pfnec_read_pmds ( pfnec_context_t ctx,
pfnec_control_state_t ctl 
)
static

Definition at line 141 of file perfnec/perfmon.c.

142{
143 return PAPI_OK;
144}

◆ _papi_pfnec_reset()

static int _papi_pfnec_reset ( hwd_context_t ctx,
hwd_control_state_t ctl 
)
static

Definition at line 273 of file perfnec/perfmon.c.

274{
275 return ( PAPI_OK );
276}

◆ _papi_pfnec_set_overflow()

static int _papi_pfnec_set_overflow ( EventSetInfo_t ESI,
int  EventIndex,
int  threshold 
)
static

Definition at line 439 of file perfnec/perfmon.c.

440{
441 return ( PAPI_OK );
442}

◆ _papi_pfnec_set_profile()

static int _papi_pfnec_set_profile ( EventSetInfo_t ESI,
int  EventIndex,
int  threshold 
)
static

Definition at line 431 of file perfnec/perfmon.c.

432{
433 return ( PAPI_OK );
434}

◆ _papi_pfnec_shutdown()

static int _papi_pfnec_shutdown ( hwd_context_t ctx0)
static

Definition at line 374 of file perfnec/perfmon.c.

375{
376 return ( PAPI_OK );
377}

◆ _papi_pfnec_shutdown_component()

static int _papi_pfnec_shutdown_component ( )
static

Definition at line 260 of file perfnec/perfmon.c.

261{
262 return PAPI_OK;
263}

◆ _papi_pfnec_start()

static int _papi_pfnec_start ( hwd_context_t ctx0,
hwd_control_state_t ctl0 
)
static

Definition at line 350 of file perfnec/perfmon.c.

351{
352 return PAPI_OK;
353}

◆ _papi_pfnec_stop()

static int _papi_pfnec_stop ( hwd_context_t ctx0,
hwd_control_state_t ctl0 
)
static

Definition at line 356 of file perfnec/perfmon.c.

357{
358 return PAPI_OK;
359}

◆ _papi_pfnec_stop_profiling()

static int _papi_pfnec_stop_profiling ( ThreadInfo_t thread,
EventSetInfo_t ESI 
)
static

Definition at line 425 of file perfnec/perfmon.c.

426{
427 return ( PAPI_OK );
428}

◆ _papi_pfnec_update_control_state()

static int _papi_pfnec_update_control_state ( hwd_control_state_t ctl,
NativeInfo_t native,
int  count,
hwd_context_t ctx 
)
static

Definition at line 463 of file perfnec/perfmon.c.

466{
467 (void) ctx;
468 int i, index;
469
471 control->active_counters = count;
472
473 for ( i = 0; i < count; ++i ) {
474 index = native[i].ni_event;
475 control->which_counter[i]=index;
476 native[i].ni_position = i;
477 }
478
479 return ( PAPI_OK );
480}
static long count
static int native

◆ _papi_pfnec_write()

static int _papi_pfnec_write ( hwd_context_t ctx,
hwd_control_state_t ctl,
long long from 
)
static

Definition at line 280 of file perfnec/perfmon.c.

282{
283 return ( PAPI_OK );
284}

◆ _papi_pfnec_write_pmcs()

static int _papi_pfnec_write_pmcs ( pfnec_context_t ctx,
pfnec_control_state_t ctl 
)
static

Definition at line 129 of file perfnec/perfmon.c.

130{
131 return PAPI_OK;
132}

◆ _papi_pfnec_write_pmds()

static int _papi_pfnec_write_pmds ( pfnec_context_t ctx,
pfnec_control_state_t ctl 
)
static

Definition at line 135 of file perfnec/perfmon.c.

136{
137 return PAPI_OK;
138}

◆ _perfnec_ntv_code_to_info()

static int _perfnec_ntv_code_to_info ( unsigned int  EventCode,
PAPI_event_info_t info 
)
static

Definition at line 521 of file perfnec/perfmon.c.

522{
523 int index = EventCode & PAPI_NATIVE_AND_MASK;
524 if ( index < 0 || index >= num_events )
525 return PAPI_ENOEVNT;
526
527 _local_strlcpy( info->symbol, perfnec_ntv_events[index].name, sizeof( info->symbol ));
528 _local_strlcpy( info->units, perfnec_ntv_events[index].units, sizeof( info->units ) );
529 _local_strlcpy( info->long_descr, perfnec_ntv_events[index].description, sizeof( info->long_descr ) );
530
532
533 return PAPI_OK;
534}
#define PAPI_ENOEVNT
Definition: f90papi.h:139
static char * _local_strlcpy(char *dst, const char *src, size_t size)
Definition: linux-libmsr.c:233
#define PAPI_NATIVE_AND_MASK
char units[PAPI_MIN_STR_LEN]
Definition: papi.h:969
char symbol[PAPI_HUGE_STR_LEN]
Definition: papi.h:960
char long_descr[PAPI_HUGE_STR_LEN]
Definition: papi.h:963
char units[PAPI_MIN_STR_LEN]
Definition: perfnec.h:93
char name[PAPI_MAX_STR_LEN]
Definition: perfnec.h:92
char description[PAPI_MAX_STR_LEN]
Definition: perfnec.h:94
Here is the call graph for this function:

◆ _perfnec_ntv_code_to_name()

static int _perfnec_ntv_code_to_name ( unsigned int  EventCode,
char *  name,
int  len 
)
static

Definition at line 508 of file perfnec/perfmon.c.

509{
510 int index = EventCode & PAPI_NATIVE_AND_MASK;
511
512 if ( index >= 0 && index < num_events ) {
514 return PAPI_OK;
515 }
516
517 return PAPI_ENOEVNT;
518}
Here is the call graph for this function:

◆ _perfnec_ntv_enum_events()

static int _perfnec_ntv_enum_events ( unsigned int EventCode,
int  modifier 
)
static

Definition at line 483 of file perfnec/perfmon.c.

484{
485 int index;
486 switch ( modifier ) {
487 case PAPI_ENUM_FIRST:
488 *EventCode = 0 | PAPI_NATIVE_MASK;
489 return PAPI_OK;
490 case PAPI_ENUM_EVENTS:
491 index = *EventCode & PAPI_NATIVE_AND_MASK;
492 if ( index < num_events - 1 ) {
493 *EventCode = (*EventCode + 1) | PAPI_NATIVE_MASK;
494 return PAPI_OK;
495 } else {
496 return PAPI_ENOEVNT;
497 }
498
499 default:
500 return PAPI_EINVAL;
501 }
502}
#define PAPI_ENUM_EVENTS
Definition: f90papi.h:224
#define PAPI_ENUM_FIRST
Definition: f90papi.h:85
#define PAPI_EINVAL
Definition: f90papi.h:115
#define PAPI_NATIVE_MASK

◆ _perfnec_ntv_name_to_code()

static int _perfnec_ntv_name_to_code ( const char *  name,
unsigned int EventCode 
)
static

Definition at line 537 of file perfnec/perfmon.c.

538{
539 int i;
540 for (i = 0; i < PKG_NUM_EVENTS; ++i)
541 if (!strcmp(name, pkg_event_names[i])) {
542 *EventCode = i;
543 return PAPI_OK;
544 }
545 return PAPI_ENOEVNT;
546}

◆ attach()

static int attach ( hwd_control_state_t ctl,
unsigned long  tid 
)
static

Definition at line 175 of file perfnec/perfmon.c.

176{
177 return ( PAPI_OK );
178}

◆ check_multiplex_timeout()

static int check_multiplex_timeout ( int  ctx_fd,
unsigned long timeout_ns 
)
static

Definition at line 151 of file perfnec/perfmon.c.

152{
153 return ( PAPI_OK );
154}

◆ check_pmmr()

static int check_pmmr ( void  )
static

Definition at line 43 of file perfnec/perfmon.c.

44{
45 uint64_t pmmr;
46 asm volatile(
47 "smir %0, %pmmr":"=r"(pmmr));
48 if (pmmr != 0x0000000000001000) {
49 fprintf(stderr, "PMMR is not expected: 0x%lx\n", pmmr);
50 return -1;
51 }
52 return PAPI_OK;
53}
Here is the caller graph for this function:

◆ compute_kernel_args()

static int compute_kernel_args ( hwd_control_state_t ctl0)
inlinestatic

Definition at line 168 of file perfnec/perfmon.c.

169{
170 return ( PAPI_OK );
171}
Here is the caller graph for this function:

◆ detach()

static int detach ( hwd_context_t ctx,
hwd_control_state_t ctl 
)
static

Definition at line 181 of file perfnec/perfmon.c.

182{
183 return ( PAPI_OK );
184}

◆ detect_timeout_and_unavail_pmu_regs()

static int detect_timeout_and_unavail_pmu_regs ( pfneclib_regmask_t r_pmcs,
pfneclib_regmask_t r_pmds,
unsigned long timeout_ns 
)
static

Definition at line 158 of file perfnec/perfmon.c.

161{
162 return PAPI_OK;
163}

◆ diff52()

static uint64_t diff52 ( uint64_t  after,
uint64_t  before 
)
static

Definition at line 60 of file perfnec/perfmon.c.

61{
62 return 0x000fffffffffffff & (after - before);
63}

◆ diff56()

static uint64_t diff56 ( uint64_t  after,
uint64_t  before 
)
static

Definition at line 55 of file perfnec/perfmon.c.

56{
57 return 0x00ffffffffffffff & (after - before);
58}

◆ dump_pmc()

static void dump_pmc ( pfnec_control_state_t ctl)
static

Definition at line 106 of file perfnec/perfmon.c.

107{
108}

◆ dump_pmd()

static void dump_pmd ( pfnec_control_state_t ctl)
static

Definition at line 111 of file perfnec/perfmon.c.

112{
113}

◆ dump_setinfo()

static void dump_setinfo ( pfarg_setinfo_t setinfo,
int  num_sets 
)
static

Definition at line 101 of file perfnec/perfmon.c.

102{
103}

◆ dump_sets()

static void dump_sets ( pfarg_setdesc_t set,
int  num_sets 
)
static

Definition at line 96 of file perfnec/perfmon.c.

97{
98}

◆ dump_smpl()

static void dump_smpl ( pfnec_dfl_smpl_entry_t entry)
static

Definition at line 121 of file perfnec/perfmon.c.

122{
123}

◆ dump_smpl_arg()

static void dump_smpl_arg ( pfnec_dfl_smpl_arg_t arg)
static

Definition at line 91 of file perfnec/perfmon.c.

92{
93}

◆ dump_smpl_hdr()

static void dump_smpl_hdr ( pfnec_dfl_smpl_hdr_t hdr)
static

Definition at line 116 of file perfnec/perfmon.c.

117{
118}

◆ find_profile_index()

static int find_profile_index ( EventSetInfo_t ESI,
int  pmd,
int flags,
unsigned int native_index,
int profile_index 
)
inlinestatic

Definition at line 382 of file perfnec/perfmon.c.

384{
385 return ( PAPI_OK );
386}

◆ get_string_from_file()

static int get_string_from_file ( char *  file,
char *  str,
int  len 
)
static

Definition at line 209 of file perfnec/perfmon.c.

210{
211 return ( PAPI_OK );
212}

◆ pfnec_bv_set()

static void pfnec_bv_set ( uint64_t *  bv,
uint16_t  rnum 
)
inlinestatic

Definition at line 391 of file perfnec/perfmon.c.

392{
393}

◆ process_smpl_buf()

static int process_smpl_buf ( int  num_smpl_pmds,
int  entry_size,
ThreadInfo_t **  thr 
)
inlinestatic

Definition at line 410 of file perfnec/perfmon.c.

411{
412 return ( PAPI_OK );
413}

◆ process_smpl_entry()

static int process_smpl_entry ( unsigned int  native_pfnec_index,
int  flags,
pfnec_dfl_smpl_entry_t **  ent,
vptr_t pc 
)
inlinestatic

Definition at line 402 of file perfnec/perfmon.c.

404{
405
406 return 0;
407}

◆ round_requested_ns()

static int round_requested_ns ( int  ns)
inlinestatic

Definition at line 362 of file perfnec/perfmon.c.

363{
364 return PAPI_OK;
365}

◆ set_domain()

static int set_domain ( hwd_control_state_t ctl,
int  domain 
)
inlinestatic

Definition at line 187 of file perfnec/perfmon.c.

188{
189 return ( compute_kernel_args( ctl ) );
190}
static int compute_kernel_args(hwd_control_state_t *ctl0)
Here is the call graph for this function:

◆ set_granularity()

static int set_granularity ( hwd_control_state_t this_state,
int  domain 
)
inlinestatic

Definition at line 193 of file perfnec/perfmon.c.

194{
195 return PAPI_OK;
196}

◆ set_inherit()

static int set_inherit ( int  arg)
inlinestatic

Definition at line 203 of file perfnec/perfmon.c.

204{
205 return PAPI_ECMP;
206}
#define PAPI_ECMP
Definition: f90papi.h:214

◆ setup_ear_event()

static int setup_ear_event ( unsigned int  native_index,
pfarg_pmd_t pd,
int  flags 
)
inlinestatic

Definition at line 396 of file perfnec/perfmon.c.

397{
398 return ( 0 );
399}

Variable Documentation

◆ _perfnec_pfnec_pmu_type

int _perfnec_pfnec_pmu_type = -1
static

Definition at line 83 of file perfnec/perfmon.c.

◆ _perfnec_vector

papi_vector_t _perfnec_vector

Definition at line 78 of file perfnec/perfmon.c.

◆ num_events

int num_events =0
static

Definition at line 40 of file perfnec/perfmon.c.