The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/qat/qat_api/common/utils/sal_statistics.c

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* SPDX-License-Identifier: BSD-3-Clause */
    2 /* Copyright(c) 2007-2022 Intel Corporation */
    3 /* $FreeBSD$ */
    4 /**
    5  *****************************************************************************
    6  * @file sal_statistics.c
    7  *
    8  * @defgroup SalStats  Sal Statistics
    9  *
   10  * @ingroup SalStats
   11  *
   12  * @description
   13  *    This file contains implementation of statistic related functions
   14  *
   15  *****************************************************************************/
   16 
   17 #include "cpa.h"
   18 #include "lac_common.h"
   19 #include "lac_mem.h"
   20 #include "icp_adf_cfg.h"
   21 #include "icp_accel_devices.h"
   22 #include "sal_statistics.h"
   23 
   24 #include "icp_adf_debug.h"
   25 #include "lac_sal_types.h"
   26 #include "lac_sal.h"
   27 
   28 /**
   29  ******************************************************************************
   30  * @ingroup SalStats
   31  *      Reads from the config file if the given statistic is enabled
   32  *
   33  * @description
   34  *      Reads from the config file if the given statistic is enabled
   35  *
   36  * @param[in]  device           Pointer to an acceleration device structure
   37  * @param[in]  statsName        Name of the config value to read the value from
   38  * @param[out] pIsEnabled       Pointer to a variable where information if the
   39  *                              given stat is enabled or disabled will be stored
   40  *
   41  * @retval  CPA_STATUS_SUCCESS          Operation successful
   42  * @retval  CPA_STATUS_INVALID_PARAM    Invalid param provided
   43  * @retval  CPA_STATUS_FAIL             Operation failed
   44  *
   45  ******************************************************************************/
   46 static CpaStatus
   47 SalStatistics_GetStatEnabled(icp_accel_dev_t *device,
   48                              const char *statsName,
   49                              CpaBoolean *pIsEnabled)
   50 {
   51         CpaStatus status = CPA_STATUS_SUCCESS;
   52         char param_value[ADF_CFG_MAX_VAL_LEN_IN_BYTES] = { 0 };
   53 
   54         LAC_CHECK_NULL_PARAM(pIsEnabled);
   55         LAC_CHECK_NULL_PARAM(statsName);
   56 
   57         status = icp_adf_cfgGetParamValue(device,
   58                                           LAC_CFG_SECTION_GENERAL,
   59                                           statsName,
   60                                           param_value);
   61 
   62         if (CPA_STATUS_SUCCESS != status) {
   63                 QAT_UTILS_LOG("Failed to get %s from configuration.\n",
   64                               statsName);
   65                 return status;
   66         }
   67 
   68         if (0 == strncmp(param_value,
   69                          SAL_STATISTICS_STRING_OFF,
   70                          strlen(SAL_STATISTICS_STRING_OFF))) {
   71                 *pIsEnabled = CPA_FALSE;
   72         } else {
   73                 *pIsEnabled = CPA_TRUE;
   74         }
   75 
   76         return status;
   77 }
   78 
   79 /* @ingroup SalStats */
   80 CpaStatus
   81 SalStatistics_InitStatisticsCollection(icp_accel_dev_t *device)
   82 {
   83         CpaStatus status = CPA_STATUS_SUCCESS;
   84         sal_statistics_collection_t *pStatsCollection = NULL;
   85         Cpa32U enabled_services = 0;
   86 
   87         LAC_CHECK_NULL_PARAM(device);
   88 
   89         pStatsCollection = LAC_OS_MALLOC(sizeof(sal_statistics_collection_t));
   90         if (NULL == pStatsCollection) {
   91                 QAT_UTILS_LOG("Failed to allocate memory for statistic.\n");
   92                 return CPA_STATUS_RESOURCE;
   93         }
   94         device->pQatStats = pStatsCollection;
   95 
   96         status = SalStatistics_GetStatEnabled(device,
   97                                               SAL_STATS_CFG_ENABLED,
   98                                               &pStatsCollection->bStatsEnabled);
   99         LAC_CHECK_STATUS(status);
  100 
  101         if (CPA_FALSE == pStatsCollection->bStatsEnabled) {
  102                 pStatsCollection->bDcStatsEnabled = CPA_FALSE;
  103                 pStatsCollection->bDhStatsEnabled = CPA_FALSE;
  104                 pStatsCollection->bDsaStatsEnabled = CPA_FALSE;
  105                 pStatsCollection->bEccStatsEnabled = CPA_FALSE;
  106                 pStatsCollection->bKeyGenStatsEnabled = CPA_FALSE;
  107                 pStatsCollection->bLnStatsEnabled = CPA_FALSE;
  108                 pStatsCollection->bPrimeStatsEnabled = CPA_FALSE;
  109                 pStatsCollection->bRsaStatsEnabled = CPA_FALSE;
  110                 pStatsCollection->bSymStatsEnabled = CPA_FALSE;
  111 
  112                 return status;
  113         }
  114 
  115         /* What services are enabled */
  116         status = SalCtrl_GetEnabledServices(device, &enabled_services);
  117         if (CPA_STATUS_SUCCESS != status) {
  118                 QAT_UTILS_LOG("Failed to get enabled services.\n");
  119                 return CPA_STATUS_FAIL;
  120         }
  121 
  122         /* Check if the compression service is enabled */
  123         if (SalCtrl_IsServiceEnabled(enabled_services,
  124                                      SAL_SERVICE_TYPE_COMPRESSION)) {
  125                 status = SalStatistics_GetStatEnabled(
  126                     device,
  127                     SAL_STATS_CFG_DC,
  128                     &pStatsCollection->bDcStatsEnabled);
  129                 LAC_CHECK_STATUS(status);
  130         }
  131         /* Check if the asym service is enabled */
  132         if (SalCtrl_IsServiceEnabled(enabled_services,
  133                                      SAL_SERVICE_TYPE_CRYPTO_ASYM) ||
  134             SalCtrl_IsServiceEnabled(enabled_services,
  135                                      SAL_SERVICE_TYPE_CRYPTO)) {
  136                 status = SalStatistics_GetStatEnabled(
  137                     device,
  138                     SAL_STATS_CFG_DH,
  139                     &pStatsCollection->bDhStatsEnabled);
  140                 LAC_CHECK_STATUS(status);
  141 
  142                 status = SalStatistics_GetStatEnabled(
  143                     device,
  144                     SAL_STATS_CFG_DSA,
  145                     &pStatsCollection->bDsaStatsEnabled);
  146                 LAC_CHECK_STATUS(status);
  147 
  148                 status = SalStatistics_GetStatEnabled(
  149                     device,
  150                     SAL_STATS_CFG_ECC,
  151                     &pStatsCollection->bEccStatsEnabled);
  152                 LAC_CHECK_STATUS(status);
  153 
  154                 status = SalStatistics_GetStatEnabled(
  155                     device,
  156                     SAL_STATS_CFG_KEYGEN,
  157                     &pStatsCollection->bKeyGenStatsEnabled);
  158                 LAC_CHECK_STATUS(status);
  159 
  160                 status = SalStatistics_GetStatEnabled(
  161                     device,
  162                     SAL_STATS_CFG_LN,
  163                     &pStatsCollection->bLnStatsEnabled);
  164                 LAC_CHECK_STATUS(status);
  165 
  166                 status = SalStatistics_GetStatEnabled(
  167                     device,
  168                     SAL_STATS_CFG_PRIME,
  169                     &pStatsCollection->bPrimeStatsEnabled);
  170                 LAC_CHECK_STATUS(status);
  171 
  172                 status = SalStatistics_GetStatEnabled(
  173                     device,
  174                     SAL_STATS_CFG_RSA,
  175                     &pStatsCollection->bRsaStatsEnabled);
  176                 LAC_CHECK_STATUS(status);
  177         }
  178 
  179         /* Check if the sym service is enabled */
  180         if (SalCtrl_IsServiceEnabled(enabled_services,
  181                                      SAL_SERVICE_TYPE_CRYPTO_SYM) ||
  182             SalCtrl_IsServiceEnabled(enabled_services,
  183                                      SAL_SERVICE_TYPE_CRYPTO)) {
  184                 status = SalStatistics_GetStatEnabled(
  185                     device,
  186                     SAL_STATS_CFG_SYM,
  187                     &pStatsCollection->bSymStatsEnabled);
  188                 LAC_CHECK_STATUS(status);
  189         }
  190         return status;
  191 };
  192 
  193 /* @ingroup SalStats */
  194 CpaStatus
  195 SalStatistics_CleanStatisticsCollection(icp_accel_dev_t *device)
  196 {
  197         sal_statistics_collection_t *pStatsCollection = NULL;
  198         LAC_CHECK_NULL_PARAM(device);
  199         pStatsCollection = (sal_statistics_collection_t *)device->pQatStats;
  200         LAC_OS_FREE(pStatsCollection);
  201         device->pQatStats = NULL;
  202         return CPA_STATUS_SUCCESS;
  203 }

Cache object: b49e6d2e3fbb50e45093367d74b071c7


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.