brintos

brintos / linux-shallow public Read only

0
0
Text · 1.5 KiB · 77d8cc2 Raw
61 lines · c
1// SPDX-License-Identifier: GPL-2.02#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#include "../../../util/sample.h"13 14void arch_perf_parse_sample_weight(struct perf_sample *data,15				   const __u64 *array, u64 type)16{17	union perf_sample_weight weight;18 19	weight.full = *array;20	if (type & PERF_SAMPLE_WEIGHT)21		data->weight = weight.full;22	else {23		data->weight = weight.var1_dw;24		data->ins_lat = weight.var2_w;25		data->p_stage_cyc = weight.var3_w;26	}27}28 29void arch_perf_synthesize_sample_weight(const struct perf_sample *data,30					__u64 *array, u64 type)31{32	*array = data->weight;33 34	if (type & PERF_SAMPLE_WEIGHT_STRUCT) {35		*array &= 0xffffffff;36		*array |= ((u64)data->ins_lat << 32);37	}38}39 40const char *arch_perf_header_entry(const char *se_header)41{42	if (!strcmp(se_header, "Local INSTR Latency"))43		return "Finish Cyc";44	else if (!strcmp(se_header, "INSTR Latency"))45		return "Global Finish_cyc";46	else if (!strcmp(se_header, "Local Pipeline Stage Cycle"))47		return "Dispatch Cyc";48	else if (!strcmp(se_header, "Pipeline Stage Cycle"))49		return "Global Dispatch_cyc";50	return se_header;51}52 53int arch_support_sort_key(const char *sort_key)54{55	if (!strcmp(sort_key, "p_stage_cyc"))56		return 1;57	if (!strcmp(sort_key, "local_p_stage_cyc"))58		return 1;59	return 0;60}61