summaryrefslogtreecommitdiff
path: root/drivers/crypto/intel/iaa/iaa_crypto_stats.h
blob: c916ca83f07022fc15a128b48f0b58a520b4b816 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright(c) 2021 Intel Corporation. All rights rsvd. */

#ifndef __CRYPTO_DEV_IAA_CRYPTO_STATS_H__
#define __CRYPTO_DEV_IAA_CRYPTO_STATS_H__

#if defined(CONFIG_CRYPTO_DEV_IAA_CRYPTO_STATS)
int	iaa_crypto_debugfs_init(void);
void	iaa_crypto_debugfs_cleanup(void);

void	update_total_comp_calls(void);
void	update_total_comp_bytes_out(int n);
void	update_total_decomp_calls(void);
void	update_total_sw_decomp_calls(void);
void	update_total_decomp_bytes_in(int n);
void	update_max_comp_delay_ns(u64 start_time_ns);
void	update_max_decomp_delay_ns(u64 start_time_ns);
void	update_completion_einval_errs(void);
void	update_completion_timeout_errs(void);
void	update_completion_comp_buf_overflow_errs(void);

void	update_wq_comp_calls(struct idxd_wq *idxd_wq);
void	update_wq_comp_bytes(struct idxd_wq *idxd_wq, int n);
void	update_wq_decomp_calls(struct idxd_wq *idxd_wq);
void	update_wq_decomp_bytes(struct idxd_wq *idxd_wq, int n);

static inline u64	iaa_get_ts(void) { return ktime_get_ns(); }

#else
static inline int	iaa_crypto_debugfs_init(void) { return 0; }
static inline void	iaa_crypto_debugfs_cleanup(void) {}

static inline void	update_total_comp_calls(void) {}
static inline void	update_total_comp_bytes_out(int n) {}
static inline void	update_total_decomp_calls(void) {}
static inline void	update_total_sw_decomp_calls(void) {}
static inline void	update_total_decomp_bytes_in(int n) {}
static inline void	update_max_comp_delay_ns(u64 start_time_ns) {}
static inline void	update_max_decomp_delay_ns(u64 start_time_ns) {}
static inline void	update_completion_einval_errs(void) {}
static inline void	update_completion_timeout_errs(void) {}
static inline void	update_completion_comp_buf_overflow_errs(void) {}

static inline void	update_wq_comp_calls(struct idxd_wq *idxd_wq) {}
static inline void	update_wq_comp_bytes(struct idxd_wq *idxd_wq, int n) {}
static inline void	update_wq_decomp_calls(struct idxd_wq *idxd_wq) {}
static inline void	update_wq_decomp_bytes(struct idxd_wq *idxd_wq, int n) {}

static inline u64	iaa_get_ts(void) { return 0; }

#endif // CONFIG_CRYPTO_DEV_IAA_CRYPTO_STATS

#endif