Blame src/perfctr-2.7.x/usr.lib/event_set_ppc64.c

Packit 577717
/* Maynard
Packit 577717
 * Descriptions of the events available for different processor types.
Packit 577717
 *
Packit 577717
 */
Packit 577717
#include <stddef.h>	/* for NULL */
Packit 577717
#include "libperfctr.h"
Packit 577717
#include "event_set.h"
Packit 577717
Packit 577717
/*
Packit 577717
 * XXX: a few events use the TBSEL and THRESHOLD fields in MMCR0.
Packit 577717
 * They should have unit mask descriptors.
Packit 577717
 */
Packit 577717
Packit 577717
/*
Packit 577717
 * PowerPC common events for PMC1-PMC4, introduced in 604.
Packit 577717
 */
Packit 577717
Packit 577717
static const struct perfctr_event ppc64_common_events[] = {
Packit 577717
    { 0x00, 0x0F, NULL, "NOTHING",
Packit 577717
      "Nothing. Register counter holds current value" },
Packit 577717
    { 0x01, 0x0F, NULL, "PROCESSOR_CYCLES",
Packit 577717
      "Processor cycles. Count every cycle" },
Packit 577717
    { 0x02, 0x0F, NULL, "INSTRUCTIONS_COMPLETED",
Packit 577717
      "Number of instructions completed. Does not include folded branches" },
Packit 577717
    { 0x03, 0x0F, NULL, "TBL_BIT_TRANSITIONS", /* XXX: depends on MMCR0[TBSEL] */
Packit 577717
      "Time-base (lower) bit transition" },
Packit 577717
    { 0x04, 0x0F, NULL, "INSTRUCTIONS_DISPATCHED",
Packit 577717
      "Number of instructions dispatched" },
Packit 577717
};
Packit 577717
Packit 577717
static const struct perfctr_event_set ppc64_common_event_set = {
Packit 577717
    .cpu_type = PERFCTR_PPC64_POWER4,
Packit 577717
    .event_prefix = "PM_",
Packit 577717
    .include = NULL,
Packit 577717
    .nevents = ARRAY_SIZE(ppc64_common_events),
Packit 577717
    .events = ppc64_common_events,
Packit 577717
};
Packit 577717
Packit 577717
Packit 577717
static const struct perfctr_event_set * const cpu_event_set[] = {
Packit 577717
    [PERFCTR_PPC64_POWER4] = &ppc64_common_event_set,
Packit 577717
    [PERFCTR_PPC64_POWER4p] = &ppc64_common_event_set,
Packit 577717
    [PERFCTR_PPC64_970] = &ppc64_common_event_set,
Packit 577717
    [PERFCTR_PPC64_970MP] = &ppc64_common_event_set,
Packit 577717
//    [PERFCTR_PPC_604e] = &perfctr_ppc604e_event_set,
Packit 577717
//    [PERFCTR_PPC_750] = &perfctr_ppc750_event_set,
Packit 577717
};
Packit 577717
Packit 577717
const struct perfctr_event_set *perfctr_cpu_event_set(unsigned cpu_type)
Packit 577717
{
Packit 577717
    if( cpu_type >= ARRAY_SIZE(cpu_event_set) )
Packit 577717
	return 0;
Packit 577717
    return cpu_event_set[cpu_type];
Packit 577717
}