Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp1021526imd; Thu, 1 Nov 2018 09:04:38 -0700 (PDT) X-Google-Smtp-Source: AJdET5dcceUK4kqeA0c4Pe8aDiGbRsBQgcFJyCdtX/PnNU5RZ4+WquLmlJpm0Yvd/l9TR0sAO/8W X-Received: by 2002:a63:fd09:: with SMTP id d9-v6mr7825985pgh.164.1541088277889; Thu, 01 Nov 2018 09:04:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1541088277; cv=none; d=google.com; s=arc-20160816; b=HyKySGUAGjtgMNmQTls+bV8Py09By9wQLO+Oa9T/D6jBO3LF4oYWJtATf/wTjhXs3+ DYuBWFjU8+c9P1aNTKWhKyaNi96oUDcsHrGshNM9N5nn7xZedoQtM7oa5UgwevuWestf p2MkYvO/I0l6pln3KodV8P7bLmfuCiVuogfa/hrwYtW8WVcLfcGyjo8qADoC73zU+e3C YUUl9OGtoLDX+XiQbfmN4MgnIrXEyWHxafYWqRdatAl/Ilfa92UCGg1cDGbPmEEbQk/x oNiFrvNCe4YrhhHhv/L2ReQbM+7BrW9rVwW7J2cZq8BFzfesjyes8NpkqdhpTDwcub7E VYOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:cc:to:subject :dkim-signature; bh=r8rtqqA5alyarq+cNB4ruARX1LleDB7hDTokLBeA86E=; b=x6t+P3obz2ntIymbW2R62WZppnaHagk6fWr6l4fEcr+rH4W8v7TVLJutiuMEaU4pOA z4H8clKT5YbgbcQJlRTnFV5JvFQFcVksFABvytHI2zMI0FZDIvN5Jqp2Ur5IrFUqV4Hg zDqEYm+jFHZDfKsDZtzcaqzqAcO9cGIxBnOPk6dn0IixtfzUa3pgKFMswb9RyQvNiKSa dKNRietSnroVKAaxKdhOx+M2hg6PjZXZFBKxDgXzS5766tl+l5Osluvej4aVCxDPbrih F2OaGjc7r6qHjGpkp78iUlXPH9r8Hg+vLnCCpk6Dr7qnByH/0rwSDfNp1TrkJApzy50X sTnQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@scalemp.com header.s=default header.b=bqFiXtsQ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=scalemp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y15-v6si22198519pfl.255.2018.11.01.09.04.21; Thu, 01 Nov 2018 09:04:37 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@scalemp.com header.s=default header.b=bqFiXtsQ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=scalemp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728807AbeKBANV (ORCPT + 99 others); Thu, 1 Nov 2018 20:13:21 -0400 Received: from www.scalemp.com ([169.44.78.149]:41132 "EHLO scalemp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728364AbeKBANV (ORCPT ); Thu, 1 Nov 2018 20:13:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=scalemp.com ; s=default; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=r8rtqqA5alyarq+cNB4ruARX1LleDB7hDTokLBeA86E=; b=bqFiXtsQ/P+TkFTk8ugeqxd94k 1VSvX5tRzRG/1UcpPXEPLJHgfta0uwfmn/nOotNv/uytHapoQ1LUan7JoacxEoh8ne4W6qV23nFk7 jG0prm0TG2DlzaTEG0UF9hztrgZy/Ev3uFpZtWDP9sVAVkzvkU0olbsZ8Kckh5n34aGM=; Received: from bzq-80-45-146.static.bezeqint.net ([82.80.45.146]:31197 helo=[10.100.0.120]) by hosting.virtualsmp.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.91) (envelope-from ) id 1gIEbb-001XYt-DG; Thu, 01 Nov 2018 11:09:55 -0400 Subject: Re: [PATCH] x86/build: Build VSMP support only if selected To: Juergen Gross Cc: Thomas Gleixner , Randy Dunlap , "Shai Fultheim (Shai@ScaleMP.com)" , Andrew Morton , "broonie@kernel.org" , "mhocko@suse.cz" , Stephen Rothwell , "linux-next@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" , "linux-mm@kvack.org" , LKML , "mm-commits@vger.kernel.org" , X86 ML , 'Oren Twaig' References: <20181030230905.xHZmM%akpm@linux-foundation.org> <9e14d183-55a4-8299-7a18-0404e50bf004@infradead.org> <054cd800-5124-f897-0069-aba49f8eb654@suse.com> From: Eial Czerwacki Organization: ScaleMP Message-ID: <3c75860d-e3d7-8c28-6120-f6056200f941@scalemp.com> Date: Thu, 1 Nov 2018 17:09:50 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <054cd800-5124-f897-0069-aba49f8eb654@suse.com> Content-Type: text/plain; charset=windows-1252 Content-Language: en-US Content-Transfer-Encoding: 7bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.virtualsmp.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - scalemp.com X-Get-Message-Sender-Via: hosting.virtualsmp.com: authenticated_id: eial@scalemp.com X-Authenticated-Sender: hosting.virtualsmp.com: eial@scalemp.com X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Greetings, On 11/01/2018 03:45 PM, Juergen Gross wrote: > On 01/11/2018 14:10, Eial Czerwacki wrote: >> Greetings, >> >> On 11/01/2018 12:39 PM, Shai Fultheim (Shai@ScaleMP.com) wrote: >>> On 01/11/18 11:37, Thomas Gleixner wrote: >>> >>>> VSMP support is built even if CONFIG_X86_VSMP is not set. This leads to a build >>>> breakage when CONFIG_PCI is disabled as well. >>>> >>>> Build VSMP code only when selected. >>> >>> This patch disables detect_vsmp_box() on systems without CONFIG_X86_VSMP, due to >>> the recent 6da63eb241a05b0e676d68975e793c0521387141. This is significant >>> regression that will affect significant number of deployments. >>> >>> We will reply shortly with an updated patch that fix the dependency on pv_irq_ops, >>> and revert to CONFIG_PARAVIRT, with proper protection for CONFIG_PCI. >>> >> >> here is the proper patch which fixes the issue on hand: >> From ebff534f8cfa55d7c3ab798c44abe879f3fbe2b8 Mon Sep 17 00:00:00 2001 >> From: Eial Czerwacki >> Date: Thu, 1 Nov 2018 15:08:32 +0200 >> Subject: [PATCH] x86/build: Build VSMP support only if CONFIG_PCI is >> selected >> >> vsmp dependency of pv_irq_ops removed some years ago, so now let's clean >> it up from vsmp_64.c. >> >> In short, "cap & ctl & (1 << 4)" was always returning 0, as such we can >> remove all the PARAVIRT/PARAVIRT_XXL code handling that. >> >> However, the rest of the code depends on CONFIG_PCI, so fix it accordingly. >> >> Signed-off-by: Eial Czerwacki >> Acked-by: Shai Fultheim >> --- >> arch/x86/Kconfig | 1 - >> arch/x86/kernel/vsmp_64.c | 80 >> +++-------------------------------------------- >> 2 files changed, 5 insertions(+), 76 deletions(-) >> >> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig >> index c51c989..4b187ca 100644 >> --- a/arch/x86/Kconfig >> +++ b/arch/x86/Kconfig >> @@ -524,7 +524,6 @@ config X86_VSMP >> bool "ScaleMP vSMP" >> select HYPERVISOR_GUEST >> select PARAVIRT > > Do you really still need PARAVIRT and HYPERVISOR_GUEST? > Maybe you want IRQ_REMAP instead? > Better performance is achieved with PARAVIRTed kernel. Hence we keep them both in. >> - select PARAVIRT_XXL >> depends on X86_64 && PCI >> depends on X86_EXTENDED_PLATFORM >> depends on SMP >> diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c >> index 1eae5af..c6d2b76 100644 >> --- a/arch/x86/kernel/vsmp_64.c >> +++ b/arch/x86/kernel/vsmp_64.c >> @@ -26,64 +26,7 @@ >> >> #define TOPOLOGY_REGISTER_OFFSET 0x10 >> >> -#if defined CONFIG_PCI && defined CONFIG_PARAVIRT_XXL >> -/* >> - * Interrupt control on vSMPowered systems: >> - * ~AC is a shadow of IF. If IF is 'on' AC should be 'off' >> - * and vice versa. >> - */ >> - >> -asmlinkage __visible unsigned long vsmp_save_fl(void) >> -{ >> - unsigned long flags = native_save_fl(); >> - >> - if (!(flags & X86_EFLAGS_IF) || (flags & X86_EFLAGS_AC)) >> - flags &= ~X86_EFLAGS_IF; >> - return flags; >> -} >> -PV_CALLEE_SAVE_REGS_THUNK(vsmp_save_fl); >> - >> -__visible void vsmp_restore_fl(unsigned long flags) >> -{ >> - if (flags & X86_EFLAGS_IF) >> - flags &= ~X86_EFLAGS_AC; >> - else >> - flags |= X86_EFLAGS_AC; >> - native_restore_fl(flags); >> -} >> -PV_CALLEE_SAVE_REGS_THUNK(vsmp_restore_fl); >> - >> -asmlinkage __visible void vsmp_irq_disable(void) >> -{ >> - unsigned long flags = native_save_fl(); >> - >> - native_restore_fl((flags & ~X86_EFLAGS_IF) | X86_EFLAGS_AC); >> -} >> -PV_CALLEE_SAVE_REGS_THUNK(vsmp_irq_disable); >> - >> -asmlinkage __visible void vsmp_irq_enable(void) >> -{ >> - unsigned long flags = native_save_fl(); >> - >> - native_restore_fl((flags | X86_EFLAGS_IF) & (~X86_EFLAGS_AC)); >> -} >> -PV_CALLEE_SAVE_REGS_THUNK(vsmp_irq_enable); >> - >> -static unsigned __init vsmp_patch(u8 type, void *ibuf, >> - unsigned long addr, unsigned len) >> -{ >> - switch (type) { >> - case PARAVIRT_PATCH(irq.irq_enable): >> - case PARAVIRT_PATCH(irq.irq_disable): >> - case PARAVIRT_PATCH(irq.save_fl): >> - case PARAVIRT_PATCH(irq.restore_fl): >> - return paravirt_patch_default(type, ibuf, addr, len); >> - default: >> - return native_patch(type, ibuf, addr, len); >> - } >> - >> -} >> - >> +#if defined CONFIG_PCI >> static void __init set_vsmp_pv_ops(void) > > Wouldn't be a rename of the function be appropriate now? you are correct, I'll fix and resend the patch. > > > Juergen >