Re: [PATCH v4 net-next] hv_netvsc: Add per-cpu ethtool stats for netvsc

From: Stephen Hemminger
Date: Mon Jul 30 2018 - 13:34:12 EST


On Mon, 30 Jul 2018 17:09:45 +0000
Yidong Ren <yidren@xxxxxxxxxxxxxxxxx> wrote:

> From: Yidong Ren <yidren@xxxxxxxxxxxxx>
>
> This patch implements following ethtool stats fields for netvsc:
> cpu<n>_tx/rx_packets/bytes
> cpu<n>_vf_tx/rx_packets/bytes
>
> Corresponding per-cpu counters already exist in current code. Exposing
> these counters will help troubleshooting performance issues.
>
> for_each_present_cpu() was used instead of for_each_possible_cpu().
> for_each_possible_cpu() would create very long and useless output.
> It is still being used for internal buffer, but not for ethtool
> output.
>
> There could be an overflow if cpu was added between ethtool
> call netvsc_get_sset_count() and netvsc_get_ethtool_stats() and
> netvsc_get_strings(). (still safe if cpu was removed)
> ethtool makes these three function calls separately.
> As long as we use ethtool, I can't see any clean solution.
>
> Currently and in foreseeable short term, Hyper-V doesn't support
> cpu hot-plug. Plus, ethtool is for admin use. Unlikely the admin
> would perform such combo operations.
>
> Signed-off-by: Yidong Ren <yidren@xxxxxxxxxxxxx>

Reviewed-by: Stephen Hemminger <sthemmin@xxxxxxxxxxxxx>