>  static int
> -ntb_xstats_reset(struct rte_rawdev *dev __rte_unused,
> -              const uint32_t ids[] __rte_unused,
> -              uint32_t nb_ids __rte_unused)
> +ntb_xstats_reset(struct rte_rawdev *dev,
> +              const uint32_t ids[],
> +              uint32_t nb_ids)
>  {
> -     return 0;
> -}
> +     struct ntb_hw *hw = dev->dev_private;
> +     uint32_t i, xstats_num;
> 
> +     xstats_num = NTB_XSTATS_NUM * (hw->queue_pairs + 1);
> +     for (i = 0; i < nb_ids && ids[i] < xstats_num; i++)
> +             hw->ntb_xstats[ids[i]] = 0;
> +
As there is no lock for the xstats, the enqueue and dequeuer thread are 
updating the value. It will cause competition.
Suggest to save the ntx_xstats, and update the value when enqueue and dequeuer 
are updating.

Thanks
Jingjing

Reply via email to