On Tue,  8 Sep 2020 11:39:05 -0700 David Awogbemila wrote:
> +     /* Only one priv flag exists: report-stats (BIT(0))*/
> +     if (flags & BIT(0))
> +             new_flags |= BIT(0);
> +     else
> +             new_flags &= ~(BIT(0));
> +     priv->ethtool_flags = new_flags;
> +     /* update the stats when user turns report-stats on */
> +     if (flags & BIT(0))
> +             gve_handle_report_stats(priv);
> +     /* zero off gve stats when report-stats turned off */
> +     if (!(flags & BIT(0)) && (ori_flags & BIT(0))) {
> +             int tx_stats_num = GVE_TX_STATS_REPORT_NUM *
> +                     priv->tx_cfg.num_queues;
> +             int rx_stats_num = GVE_RX_STATS_REPORT_NUM *
> +                     priv->rx_cfg.num_queues;
> +
> +             memset(priv->stats_report->stats, 0, (tx_stats_num + 
> rx_stats_num) *
> +                                sizeof(struct stats));
> +     }

I don't understand why you don't cancel/start the timer when this flag
is changed. Why waste the CPU cycles on handling a useless timer?

Reply via email to