MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ena_copy_customer_metrics

Function ena_copy_customer_metrics

dpdk/drivers/net/ena/ena_ethdev.c:3220–3261  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3218}
3219
3220static void ena_copy_customer_metrics(struct ena_adapter *adapter, uint64_t *buf,
3221 size_t num_metrics)
3222{
3223 struct ena_com_dev *ena_dev = &adapter->ena_dev;
3224 int rc;
3225
3226 if (ena_com_get_cap(ena_dev, ENA_ADMIN_CUSTOMER_METRICS)) {
3227 if (num_metrics != ENA_STATS_ARRAY_METRICS) {
3228 PMD_DRV_LOG(ERR, "Detected discrepancy in the number of customer metrics");
3229 return;
3230 }
3231 rte_spinlock_lock(&adapter->admin_lock);
3232 rc = ENA_PROXY(adapter,
3233 ena_com_get_customer_metrics,
3234 &adapter->ena_dev,
3235 (char *)buf,
3236 num_metrics * sizeof(uint64_t));
3237 rte_spinlock_unlock(&adapter->admin_lock);
3238 if (rc != 0) {
3239 PMD_DRV_LOG(WARNING, "Failed to get customer metrics, rc: %d\n", rc);
3240 return;
3241 }
3242
3243 } else if (ena_com_get_cap(ena_dev, ENA_ADMIN_ENI_STATS)) {
3244 if (num_metrics != ENA_STATS_ARRAY_METRICS_LEGACY) {
3245 PMD_DRV_LOG(ERR, "Detected discrepancy in the number of legacy metrics");
3246 return;
3247 }
3248
3249 rte_spinlock_lock(&adapter->admin_lock);
3250 rc = ENA_PROXY(adapter,
3251 ena_com_get_eni_stats,
3252 &adapter->ena_dev,
3253 (struct ena_admin_eni_stats *)buf);
3254 rte_spinlock_unlock(&adapter->admin_lock);
3255 if (rc != 0) {
3256 PMD_DRV_LOG(WARNING,
3257 "Failed to get ENI metrics, rc: %d\n", rc);
3258 return;
3259 }
3260 }
3261}
3262
3263static void ena_copy_ena_srd_info(struct ena_adapter *adapter,
3264 struct ena_stats_srd *srd_info)

Callers 2

ena_xstats_getFunction · 0.85
ena_xstats_get_by_idFunction · 0.85

Calls 3

ena_com_get_capFunction · 0.85
rte_spinlock_lockFunction · 0.50
rte_spinlock_unlockFunction · 0.50

Tested by

no test coverage detected