Re: [PATCH 0/7] hv: CPU onlining/offlining fixes and improvements

From: Stephen Hemminger
Date: Sat Nov 26 2016 - 12:06:09 EST


On Fri, 25 Nov 2016 13:48:36 +0100
Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> wrote:

> Some time ago we forbade CPU offlining for Hyper-V and this was sufficient
> if you boot with all CPUs onlined. Turns out, people may want to limit the
> number online CPUs by passing 'maxcpus=' kernel parameter and we hit a
> crash in Hyper-V code in this case. After some thinking, I think we may not
> only fix the crash but also make the offlining prevention fine-grained: we
> need to prevent from offlining CPUs which have VMBus channels attached
> only. All offlined CPUs may always be onlined.
>
> PATCH1 fixes a bug which is not directly related to the series, I hit it
> while testing hv_vmbus module unload with this series.
>
> Vitaly Kuznetsov (7):
> hv: acquire vmbus_connection.channel_mutex in vmbus_free_channels()
> hv: allocate synic pages for all present CPUs
> hv: init percpu_list in hv_synic_alloc()
> hv: change clockevents unbind tactics
> hv: check all present cpus in vmbus_wait_for_unload()
> hv: switch to cpuhp state machine for synic init/cleanup
> hv: make CPU offlining prevention fine-grained
>
> drivers/hv/channel_mgmt.c | 6 +++--
> drivers/hv/hv.c | 60 ++++++++++++++++++++++++++++++++++++-----------
> drivers/hv/hyperv_vmbus.h | 4 ++--
> drivers/hv/vmbus_drv.c | 28 ++++++++++++----------
> 4 files changed, 67 insertions(+), 31 deletions(-)
>

As a temporary solution this is ok, but long term we need to support
dynamic CPU online/offline.