Blame src/components/perf_event/tests/event_name_lib.c

Packit Service a1973e
#include <stdio.h>
Packit Service a1973e
#include <stdlib.h>
Packit Service a1973e
#include <string.h>
Packit Service a1973e
Packit Service a1973e
#include "papi.h"
Packit Service a1973e
Packit Service a1973e
char *get_offcore_event(char *event, int size) {
Packit Service a1973e
Packit Service a1973e
	const PAPI_hw_info_t *hwinfo;
Packit Service a1973e
Packit Service a1973e
	hwinfo = PAPI_get_hardware_info();
Packit Service a1973e
	if ( hwinfo == NULL ) {
Packit Service a1973e
		return NULL;
Packit Service a1973e
	}
Packit Service a1973e
Packit Service a1973e
	if (hwinfo->vendor == PAPI_VENDOR_INTEL) {
Packit Service a1973e
Packit Service a1973e
		if ( hwinfo->cpuid_family == 6) {
Packit Service a1973e
			switch(hwinfo->cpuid_model) {
Packit Service a1973e
Packit Service a1973e
			case 26:
Packit Service a1973e
			case 30:
Packit Service a1973e
			case 31: /* Nehalem */
Packit Service a1973e
			case 46: /* Nehalem EX */
Packit Service a1973e
			strncpy(event,
Packit Service a1973e
			"OFFCORE_RESPONSE_0:DMND_DATA_RD:LOCAL_DRAM",size);
Packit Service a1973e
			return event;
Packit Service a1973e
			break;
Packit Service a1973e
Packit Service a1973e
			case 37:
Packit Service a1973e
			case 44: /* Westmere */
Packit Service a1973e
			case 47: /* Westmere EX */
Packit Service a1973e
			strncpy(event,
Packit Service a1973e
			"OFFCORE_RESPONSE_0:DMND_DATA_RD:LOCAL_DRAM",size);
Packit Service a1973e
			return event;
Packit Service a1973e
			break;
Packit Service a1973e
Packit Service a1973e
			case 45: /* SandyBridge EP */
Packit Service a1973e
			case 42: /* SandyBridge */
Packit Service a1973e
			strncpy(event,
Packit Service a1973e
			"OFFCORE_RESPONSE_0:DMND_DATA_RD:ANY_RESPONSE",size);
Packit Service a1973e
			return event;
Packit Service a1973e
			break;
Packit Service a1973e
Packit Service a1973e
			case 58: /* IvyBridge */
Packit Service a1973e
			case 62: /* Ivy Trail */
Packit Service a1973e
			strncpy(event,
Packit Service a1973e
			"OFFCORE_RESPONSE_0:DMND_DATA_RD:ANY_RESPONSE",size);
Packit Service a1973e
			return event;
Packit Service a1973e
			break;
Packit Service a1973e
Packit Service a1973e
			case 60: /* Haswell */
Packit Service a1973e
			case 69:
Packit Service a1973e
			case 70:
Packit Service a1973e
			case 63: /* Haswell EP */
Packit Service a1973e
			strncpy(event,
Packit Service a1973e
			"OFFCORE_RESPONSE_0:DMND_DATA_RD:ANY_RESPONSE",size);
Packit Service a1973e
			return event;
Packit Service a1973e
			break;
Packit Service a1973e
Packit Service a1973e
			case 61: /* Broadwell */
Packit Service a1973e
			case 71:
Packit Service a1973e
			case 86:
Packit Service a1973e
			case 79: /* Broadwell EP */
Packit Service a1973e
			strncpy(event,
Packit Service a1973e
			"OFFCORE_RESPONSE_0:DMND_DATA_RD:ANY_RESPONSE",size);
Packit Service a1973e
			return event;
Packit Service a1973e
			break;
Packit Service a1973e
Packit Service a1973e
			case 78: /* Skylake */
Packit Service a1973e
			case 94:
Packit Service a1973e
			case 85: /* Skylake-X */
Packit Service a1973e
			strncpy(event,
Packit Service a1973e
			"OFFCORE_RESPONSE_0:DMND_DATA_RD:ANY_RESPONSE",size);
Packit Service a1973e
			return event;
Packit Service a1973e
			break;
Packit Service a1973e
Packit Service a1973e
			case 142: /* Kabylake */
Packit Service a1973e
			case 158:
Packit Service a1973e
			strncpy(event,
Packit Service a1973e
			"OFFCORE_RESPONSE_0:DMND_DATA_RD:ANY_RESPONSE",size);
Packit Service a1973e
			return event;
Packit Service a1973e
			break;
Packit Service a1973e
Packit Service a1973e
			case 87: /* Knights Landing */
Packit Service a1973e
			strncpy(event,
Packit Service a1973e
			"OFFCORE_RESPONSE_0:DMND_DATA_RD:ANY_RESPONSE",size);
Packit Service a1973e
			return event;
Packit Service a1973e
			break;
Packit Service a1973e
Packit Service a1973e
			}
Packit Service a1973e
		}
Packit Service a1973e
		return NULL;
Packit Service a1973e
	}
Packit Service a1973e
	else if (hwinfo->vendor == PAPI_VENDOR_AMD) {
Packit Service a1973e
		return NULL;
Packit Service a1973e
	}
Packit Service a1973e
Packit Service a1973e
	return NULL;
Packit Service a1973e
}
Packit Service a1973e
Packit Service a1973e
char *get_instructions_event(char *event, int size) {
Packit Service a1973e
Packit Service a1973e
	const PAPI_hw_info_t *hwinfo;
Packit Service a1973e
Packit Service a1973e
	hwinfo = PAPI_get_hardware_info();
Packit Service a1973e
	if ( hwinfo == NULL ) {
Packit Service a1973e
		return NULL;
Packit Service a1973e
	}
Packit Service a1973e
Packit Service a1973e
	if (hwinfo->vendor == PAPI_VENDOR_INTEL) {
Packit Service a1973e
Packit Service a1973e
		if ( hwinfo->cpuid_family == 6) {
Packit Service a1973e
			strncpy(event,"INSTRUCTIONS_RETIRED",size);
Packit Service a1973e
			return event;
Packit Service a1973e
		}
Packit Service a1973e
Packit Service a1973e
		if ( hwinfo->cpuid_family == 15) {
Packit Service a1973e
			strncpy(event,"INSTR_RETIRED:NBOGUSNTAG",size);
Packit Service a1973e
			return event;
Packit Service a1973e
		}
Packit Service a1973e
Packit Service a1973e
		return NULL;
Packit Service a1973e
	}
Packit Service a1973e
	else if (hwinfo->vendor == PAPI_VENDOR_AMD) {
Packit Service a1973e
		strncpy(event,"RETIRED_INSTRUCTIONS",size);
Packit Service a1973e
		return event;
Packit Service a1973e
	}
Packit Service a1973e
Packit Service a1973e
	return NULL;
Packit Service a1973e
}
Packit Service a1973e
Packit Service a1973e
char *get_invalid_event_name(char *event, int size) {
Packit Service a1973e
Packit Service a1973e
	const PAPI_hw_info_t *hwinfo;
Packit Service a1973e
Packit Service a1973e
	hwinfo = PAPI_get_hardware_info();
Packit Service a1973e
	if ( hwinfo == NULL ) {
Packit Service a1973e
		return NULL;
Packit Service a1973e
	}
Packit Service a1973e
Packit Service a1973e
	if (hwinfo->vendor == PAPI_VENDOR_INTEL) {
Packit Service a1973e
Packit Service a1973e
		if ( hwinfo->cpuid_family == 6) {
Packit Service a1973e
			switch(hwinfo->cpuid_model) {
Packit Service a1973e
Packit Service a1973e
			case 78: /* Skylake */
Packit Service a1973e
			case 94:
Packit Service a1973e
			case 85: /* Skylake-X */
Packit Service a1973e
			strncpy(event,
Packit Service a1973e
			"DTLB_LOAD_MISSES:MISS_CAUSES_A_WALK,DTLB_STORE_MISSES:MISS_CAUSES_A_WALK:u=1",size);
Packit Service a1973e
			return event;
Packit Service a1973e
			break;
Packit Service a1973e
Packit Service a1973e
			}
Packit Service a1973e
		}
Packit Service a1973e
		return NULL;
Packit Service a1973e
	}
Packit Service a1973e
	else if (hwinfo->vendor == PAPI_VENDOR_AMD) {
Packit Service a1973e
		return NULL;
Packit Service a1973e
	}
Packit Service a1973e
Packit Service a1973e
	return NULL;
Packit Service a1973e
}
Packit Service a1973e