File Index
Files and directories
Sign in
FILE

adf_tl_debugfs.h

File preview with syntax highlighting.

linux-6.19.14/drivers/crypto/intel/qat/qat_common/adf_tl_debugfs.h C
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/* Copyright (c) 2023 Intel Corporation. */
  3#ifndef ADF_TL_DEBUGFS_H
  4#define ADF_TL_DEBUGFS_H
  5
  6#include <linux/types.h>
  7
  8struct adf_accel_dev;
  9
 10#define MAX_COUNT_NAME_SIZE	32
 11#define SNAPSHOT_CNT_MSG	"sample_cnt"
 12#define RP_NUM_INDEX		"rp_num"
 13#define PCI_TRANS_CNT_NAME	"pci_trans_cnt"
 14#define MAX_RD_LAT_NAME		"max_rd_lat"
 15#define RD_LAT_ACC_NAME		"rd_lat_acc_avg"
 16#define MAX_LAT_NAME		"max_gp_lat"
 17#define LAT_ACC_NAME		"gp_lat_acc_avg"
 18#define BW_IN_NAME		"bw_in"
 19#define BW_OUT_NAME		"bw_out"
 20#define RE_ACC_NAME		"re_acc_avg"
 21#define PAGE_REQ_LAT_NAME	"at_page_req_lat_avg"
 22#define AT_TRANS_LAT_NAME	"at_trans_lat_avg"
 23#define AT_MAX_UTLB_USED_NAME	"at_max_tlb_used"
 24#define AT_GLOB_DTLB_HIT_NAME	"at_glob_devtlb_hit"
 25#define AT_GLOB_DTLB_MISS_NAME	"at_glob_devtlb_miss"
 26#define AT_PAYLD_DTLB_HIT_NAME	"tl_at_payld_devtlb_hit"
 27#define AT_PAYLD_DTLB_MISS_NAME	"tl_at_payld_devtlb_miss"
 28#define RP_SERVICE_TYPE		"service_type"
 29
 30#define ADF_TL_DBG_RP_ALPHA_INDEX(index) ((index) + 'A')
 31#define ADF_TL_DBG_RP_INDEX_ALPHA(alpha) ((alpha) - 'A')
 32
 33#define ADF_TL_RP_REGS_FNAME		"rp_%c_data"
 34#define ADF_TL_RP_REGS_FNAME_SIZE		16
 35
 36#define ADF_TL_DATA_REG_OFF(reg, qat_gen)	\
 37	offsetof(struct adf_##qat_gen##_tl_layout, reg)
 38
 39#define ADF_TL_DEV_REG_OFF(reg, qat_gen)			\
 40	(ADF_TL_DATA_REG_OFF(tl_device_data_regs, qat_gen) +	\
 41	offsetof(struct adf_##qat_gen##_tl_device_data_regs, reg))
 42
 43#define ADF_TL_SLICE_REG_OFF(slice, reg, qat_gen)		\
 44	(ADF_TL_DEV_REG_OFF(slice##_slices[0], qat_gen) +	\
 45	offsetof(struct adf_##qat_gen##_tl_slice_data_regs, reg))
 46
 47#define ADF_TL_CMDQ_REG_OFF(slice, reg, qat_gen)        \
 48	(ADF_TL_DEV_REG_OFF(slice##_cmdq[0], qat_gen) + \
 49	 offsetof(struct adf_##qat_gen##_tl_cmdq_data_regs, reg))
 50
 51#define ADF_TL_RP_REG_OFF(reg, qat_gen)					\
 52	(ADF_TL_DATA_REG_OFF(tl_ring_pairs_data_regs[0], qat_gen) +	\
 53	offsetof(struct adf_##qat_gen##_tl_ring_pair_data_regs, reg))
 54
 55/**
 56 * enum adf_tl_counter_type - telemetry counter types
 57 * @ADF_TL_COUNTER_UNSUPPORTED: unsupported counter
 58 * @ADF_TL_SIMPLE_COUNT: simple counter
 59 * @ADF_TL_COUNTER_NS: latency counter, value in ns
 60 * @ADF_TL_COUNTER_NS_AVG: accumulated average latency counter, value in ns
 61 * @ADF_TL_COUNTER_MBPS: bandwidth, value in MBps
 62 */
 63enum adf_tl_counter_type {
 64	ADF_TL_COUNTER_UNSUPPORTED,
 65	ADF_TL_SIMPLE_COUNT,
 66	ADF_TL_COUNTER_NS,
 67	ADF_TL_COUNTER_NS_AVG,
 68	ADF_TL_COUNTER_MBPS,
 69};
 70
 71/**
 72 * struct adf_tl_dbg_counter - telemetry counter definition
 73 * @name: name of the counter as printed in the report
 74 * @adf_tl_counter_type: type of the counter
 75 * @offset1: offset of 1st register
 76 * @offset2: offset of 2nd optional register
 77 */
 78struct adf_tl_dbg_counter {
 79	const char *name;
 80	enum adf_tl_counter_type type;
 81	size_t offset1;
 82	size_t offset2;
 83};
 84
 85#define ADF_TL_COUNTER(_name, _type, _offset)	\
 86{	.name =		_name,			\
 87	.type =		_type,			\
 88	.offset1 =	_offset			\
 89}
 90
 91#define ADF_TL_COUNTER_LATENCY(_name, _type, _offset1, _offset2)	\
 92{	.name =		_name,						\
 93	.type =		_type,						\
 94	.offset1 =	_offset1,					\
 95	.offset2 =	_offset2					\
 96}
 97
 98/* Telemetry counter aggregated values. */
 99struct adf_tl_dbg_aggr_values {
100	u64 curr;
101	u64 min;
102	u64 max;
103	u64 avg;
104};
105
106/**
107 * adf_tl_dbgfs_add() - Add telemetry's debug fs entries.
108 * @accel_dev: Pointer to acceleration device.
109 *
110 * Creates telemetry's debug fs folder and attributes in QAT debug fs root.
111 */
112void adf_tl_dbgfs_add(struct adf_accel_dev *accel_dev);
113
114/**
115 * adf_tl_dbgfs_rm() - Remove telemetry's debug fs entries.
116 * @accel_dev: Pointer to acceleration device.
117 *
118 * Removes telemetry's debug fs folder and attributes from QAT debug fs root.
119 */
120void adf_tl_dbgfs_rm(struct adf_accel_dev *accel_dev);
121
122#endif /* ADF_TL_DEBUGFS_H */
~/ Read-only file preview.