On Wed, 13 Aug 2025 15:48:29 +0400 (+04)
Ivan Malov <ivan.ma...@arknetworks.am> wrote:

> > +static int nbl_dev_update_hw_xstats(struct nbl_dev_mgt *dev_mgt, struct 
> > rte_eth_xstat *xstats,
> > +                               u16 hw_xstats_cnt, u16 *xstats_cnt)
> > +{
> > +   struct nbl_common_info *common = NBL_DEV_MGT_TO_COMMON(dev_mgt);
> > +   struct nbl_dispatch_ops *disp_ops = NBL_DEV_MGT_TO_DISP_OPS(dev_mgt);
> > +   u64 *hw_stats;
> > +   int i;
> > +   u16 count = *xstats_cnt;
> > +
> > +   hw_stats = rte_zmalloc("nbl_xstats_cnt", hw_xstats_cnt * sizeof(u64), 
> > 0);  
> 
> Do you believe it's the best course of action, to allocate and free a bounce
> buffer on each invocation? This function is not strictly fast-path, but I'd 
> say
> semi-fast. Some applications may want to invoke it pretty often.

Unless the buffer is shared with another process, better to use regular malloc
or alloca for this. Using rte_malloc() is slower, and requires use of huge pages
when not needed.

Reply via email to