1 /* SPDX-License-Identifier: BSD-3-Clause */
2 /* Copyright(c) 2007-2022 Intel Corporation */
3 /* $FreeBSD$ */
4
5 /**
6 ***************************************************************************
7 * @file lac_sym_stats.c Implementation of symmetric stats
8 *
9 * @ingroup LacSym
10 *
11 ***************************************************************************/
12
13 /*
14 *******************************************************************************
15 * Include public/global header files
16 *******************************************************************************
17 */
18 #include "cpa.h"
19 #include "cpa_cy_sym.h"
20
21 /*
22 *******************************************************************************
23 * Include private header files
24 *******************************************************************************
25 */
26 #include "lac_mem_pools.h"
27 #include "icp_adf_transport.h"
28 #include "icp_accel_devices.h"
29 #include "icp_adf_debug.h"
30 #include "icp_qat_fw_la.h"
31 #include "lac_sym_qat.h"
32 #include "lac_sym_stats.h"
33 #include "lac_sal_types_crypto.h"
34 #include "sal_statistics.h"
35
36 /* Number of Symmetric Crypto statistics */
37 #define LAC_SYM_NUM_STATS (sizeof(CpaCySymStats64) / sizeof(Cpa64U))
38
39 CpaStatus
40 LacSym_StatsInit(CpaInstanceHandle instanceHandle)
41 {
42 CpaStatus status = CPA_STATUS_SUCCESS;
43 sal_crypto_service_t *pService = (sal_crypto_service_t *)instanceHandle;
44
45 pService->pLacSymStatsArr =
46 LAC_OS_MALLOC(LAC_SYM_NUM_STATS * sizeof(QatUtilsAtomic));
47
48 if (NULL != pService->pLacSymStatsArr) {
49 LAC_OS_BZERO((void *)LAC_CONST_VOLATILE_PTR_CAST(
50 pService->pLacSymStatsArr),
51 LAC_SYM_NUM_STATS * sizeof(QatUtilsAtomic));
52 } else {
53 status = CPA_STATUS_RESOURCE;
54 }
55 return status;
56 }
57
58 void
59 LacSym_StatsFree(CpaInstanceHandle instanceHandle)
60 {
61 sal_crypto_service_t *pService = (sal_crypto_service_t *)instanceHandle;
62 if (NULL != pService->pLacSymStatsArr) {
63 LAC_OS_FREE(pService->pLacSymStatsArr);
64 }
65 }
66
67 void
68 LacSym_StatsInc(Cpa32U offset, CpaInstanceHandle instanceHandle)
69 {
70 sal_crypto_service_t *pService = (sal_crypto_service_t *)instanceHandle;
71 if (CPA_TRUE ==
72 pService->generic_service_info.stats->bSymStatsEnabled) {
73 qatUtilsAtomicInc(
74 &pService->pLacSymStatsArr[offset / sizeof(Cpa64U)]);
75 }
76 }
77
78 void
79 LacSym_Stats32CopyGet(CpaInstanceHandle instanceHandle,
80 struct _CpaCySymStats *const pSymStats)
81 {
82 int i = 0;
83 sal_crypto_service_t *pService = (sal_crypto_service_t *)instanceHandle;
84
85 for (i = 0; i < LAC_SYM_NUM_STATS; i++) {
86 ((Cpa32U *)pSymStats)[i] =
87 (Cpa32U)qatUtilsAtomicGet(&pService->pLacSymStatsArr[i]);
88 }
89 }
90
91 void
92 LacSym_Stats64CopyGet(CpaInstanceHandle instanceHandle,
93 CpaCySymStats64 *const pSymStats)
94 {
95 int i = 0;
96 sal_crypto_service_t *pService = (sal_crypto_service_t *)instanceHandle;
97
98 for (i = 0; i < LAC_SYM_NUM_STATS; i++) {
99 ((Cpa64U *)pSymStats)[i] =
100 qatUtilsAtomicGet(&pService->pLacSymStatsArr[i]);
101 }
102 }
103
104 void
105 LacSym_StatsShow(CpaInstanceHandle instanceHandle)
106 {
107 CpaCySymStats64 symStats = { 0 };
108
109 LacSym_Stats64CopyGet(instanceHandle, &symStats);
110
111 QAT_UTILS_LOG(SEPARATOR BORDER
112 " Symmetric Stats " BORDER
113 "\n" SEPARATOR);
114
115 /* Session Info */
116 QAT_UTILS_LOG(BORDER " Sessions Initialized: %16llu " BORDER
117 "\n" BORDER
118 " Sessions Removed: %16llu " BORDER
119 "\n" BORDER
120 " Session Errors: %16llu " BORDER
121 "\n" SEPARATOR,
122 (unsigned long long)symStats.numSessionsInitialized,
123 (unsigned long long)symStats.numSessionsRemoved,
124 (unsigned long long)symStats.numSessionErrors);
125
126 /* Session info */
127 QAT_UTILS_LOG(
128 BORDER " Symmetric Requests: %16llu " BORDER "\n" BORDER
129 " Symmetric Request Errors: %16llu " BORDER "\n" BORDER
130 " Symmetric Completed: %16llu " BORDER "\n" BORDER
131 " Symmetric Completed Errors: %16llu " BORDER "\n" BORDER
132 " Symmetric Verify Failures: %16llu " BORDER
133 "\n" SEPARATOR,
134 (unsigned long long)symStats.numSymOpRequests,
135 (unsigned long long)symStats.numSymOpRequestErrors,
136 (unsigned long long)symStats.numSymOpCompleted,
137 (unsigned long long)symStats.numSymOpCompletedErrors,
138 (unsigned long long)symStats.numSymOpVerifyFailures);
139 }
Cache object: d3ec7f1fa3b7d6c7f1f74e7def060c84
|