Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752638AbcKZRGF (ORCPT ); Sat, 26 Nov 2016 12:06:05 -0500 Received: from mail-pg0-f44.google.com ([74.125.83.44]:34863 "EHLO mail-pg0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752529AbcKZRGA (ORCPT ); Sat, 26 Nov 2016 12:06:00 -0500 Date: Sat, 26 Nov 2016 09:05:57 -0800 From: Stephen Hemminger To: Vitaly Kuznetsov Cc: devel@linuxdriverproject.org, linux-kernel@vger.kernel.org, "K. Y. Srinivasan" , Haiyang Zhang , Dexuan Cui Subject: Re: [PATCH 0/7] hv: CPU onlining/offlining fixes and improvements Message-ID: <20161126090557.73dd4df7@samsung9.wavecable.com> In-Reply-To: <1480078123-17582-1-git-send-email-vkuznets@redhat.com> References: <1480078123-17582-1-git-send-email-vkuznets@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1503 Lines: 32 On Fri, 25 Nov 2016 13:48:36 +0100 Vitaly Kuznetsov 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.