[dpdk-dev] [RFC PATCH v1] rte: add bit-rate metrics to xstats

Pattan, Reshma reshma.pattan at intel.com
Fri Aug 26 15:28:46 CEST 2016


Hi,

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Remy Horton
> Sent: Wednesday, August 24, 2016 3:58 PM
> To: thomas.monjalon at 6wind.com
> Cc: dev at dpdk.org
> Subject: [dpdk-dev] [RFC PATCH v1] rte: add bit-rate metrics to xstats
> 
> This patch adds peak and average data-rate metrics to the extended statistics.
> The intervals used to generate the statistics are controlled by any application
> wishing to make use of these metrics.
> 
> Signed-off-by: Remy Horton <remy.horton at intel.com>
> ---
> +int
> +rte_eth_dev_stats_init(uint8_t port_id, uint32_t cnt_buckets) {
> +	struct rte_eth_dev *dev;
> +	struct rte_eth_dev_stats *stats;
> +
> +	RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -EINVAL);
> +	dev = &rte_eth_devices[port_id];
> +	stats = &dev->data->stats;
> +
> +	memset(stats, 0, sizeof(struct rte_eth_dev_stats));
> +	stats->list_ibuckets = rte_zmalloc(
> +		NULL, sizeof(uint64_t) * cnt_buckets, 0);

We can have the sizeof(uint64_t) * cnt_buckets, calculated on top and use that in both the rte_zmallocs, Instead of performing * operation twice.

> +	stats->list_obuckets = rte_zmalloc(
> +		NULL, sizeof(uint64_t) * cnt_buckets, 0);
> +	if (stats->list_ibuckets == NULL || stats->list_obuckets == NULL)
> +		return -ENOMEM;

If  either of them has valid pointer we should free that before returning.

> +	stats->cnt_buckets = cnt_buckets;
> +	return 0;
> +}
> +

Thanks,
Reshma


More information about the dev mailing list