cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

event.c (1471B)


      1// SPDX-License-Identifier: GPL-2.0
      2#include <linux/types.h>
      3#include <linux/string.h>
      4#include <linux/zalloc.h>
      5
      6#include "../../../util/event.h"
      7#include "../../../util/synthetic-events.h"
      8#include "../../../util/machine.h"
      9#include "../../../util/tool.h"
     10#include "../../../util/map.h"
     11#include "../../../util/debug.h"
     12
     13void arch_perf_parse_sample_weight(struct perf_sample *data,
     14				   const __u64 *array, u64 type)
     15{
     16	union perf_sample_weight weight;
     17
     18	weight.full = *array;
     19	if (type & PERF_SAMPLE_WEIGHT)
     20		data->weight = weight.full;
     21	else {
     22		data->weight = weight.var1_dw;
     23		data->ins_lat = weight.var2_w;
     24		data->p_stage_cyc = weight.var3_w;
     25	}
     26}
     27
     28void arch_perf_synthesize_sample_weight(const struct perf_sample *data,
     29					__u64 *array, u64 type)
     30{
     31	*array = data->weight;
     32
     33	if (type & PERF_SAMPLE_WEIGHT_STRUCT) {
     34		*array &= 0xffffffff;
     35		*array |= ((u64)data->ins_lat << 32);
     36	}
     37}
     38
     39const char *arch_perf_header_entry(const char *se_header)
     40{
     41	if (!strcmp(se_header, "Local INSTR Latency"))
     42		return "Finish Cyc";
     43	else if (!strcmp(se_header, "INSTR Latency"))
     44		return "Global Finish_cyc";
     45	else if (!strcmp(se_header, "Local Pipeline Stage Cycle"))
     46		return "Dispatch Cyc";
     47	else if (!strcmp(se_header, "Pipeline Stage Cycle"))
     48		return "Global Dispatch_cyc";
     49	return se_header;
     50}
     51
     52int arch_support_sort_key(const char *sort_key)
     53{
     54	if (!strcmp(sort_key, "p_stage_cyc"))
     55		return 1;
     56	if (!strcmp(sort_key, "local_p_stage_cyc"))
     57		return 1;
     58	return 0;
     59}