Re: [PATCH v3] hv_netvsc: Add per-cpu ethtool stats for netvsc

From: Vitaly Kuznetsov
Date: Tue Jul 24 2018 - 07:01:10 EST


Yidong Ren <Yidong.Ren@xxxxxxxxxxxxx> writes:

>> From: Yidong Ren <yidren@xxxxxxxxxxxxxxxxx>
>> Sent: Monday, July 23, 2018 6:26 PM
>> + pcpu_sum = kvmalloc(sizeof(struct netvsc_ethtool_pcpu_stats) *
>> + num_present_cpus(), GFP_KERNEL);
>
> Since there is no plan for CPU hotplug in Hyper-V in short term, it is fine
> to use num_present_cpus for now. We can move to debugfs later if necessary.

While you do for_each_present_cpu() in netvsc_get_ethtool_stats(),
netvsc_get_pcpu_stats() does for_each_possible_cpu(). This looks
inconsistent.

The allocation you're doing here is short-lived so I would suggest you
use possible_cpus everywhere. Even knowing there's no CPU hotplug on
Hyper-V at this moment, it can appear later and we'll get a hard-to-find
issue. Moreover, we may consider using netvsc driver on e.g. KVM with
Hyper-V enlightenments and KVM has CPU hotplug already.

--
Vitaly