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

From: Vitaly Kuznetsov
Date: Fri Nov 25 2016 - 07:55:56 EST

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(-)