Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753507AbcKYMzj (ORCPT ); Fri, 25 Nov 2016 07:55:39 -0500 Received: from mx1.redhat.com ([209.132.183.28]:34844 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752822AbcKYMz3 (ORCPT ); Fri, 25 Nov 2016 07:55:29 -0500 From: Vitaly Kuznetsov To: devel@linuxdriverproject.org Cc: linux-kernel@vger.kernel.org, "K. Y. Srinivasan" , Haiyang Zhang , Dexuan Cui , Stephen Hemminger Subject: [PATCH 0/7] hv: CPU onlining/offlining fixes and improvements Date: Fri, 25 Nov 2016 13:48:36 +0100 Message-Id: <1480078123-17582-1-git-send-email-vkuznets@redhat.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Fri, 25 Nov 2016 12:48:46 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1281 Lines: 28 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(-) -- 2.7.4