Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp3647973ybd; Tue, 25 Jun 2019 06:16:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqxq6onIWeKGHPJkwPVRP5hTsmTFaHcVURb3tOBGenNzxR7TsmMI5fDuc2idWWul8siUqvkN X-Received: by 2002:a63:d84e:: with SMTP id k14mr39043343pgj.234.1561468590894; Tue, 25 Jun 2019 06:16:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561468590; cv=none; d=google.com; s=arc-20160816; b=VyDAb8bwY5pA0rOpFInx8ohPjfvZDAAh6ZrADV850ZKz5rhfFD/73aCVyuYNeRgPMm xYVzpjQCD4MKdMIG8+dYFh5Y1ULiUc9KLMH9LgPFU4uPhwR3IXZAHeR9EXiSmjArLBUz g8C+Ss3NmwgfBYonpacArEmLPRqqs0La5JOHle7yUJ117f9z2cstkpklKTHXqBdAh8Gm GQa7EYa6PL0jkk1epIsDRnqGjezxmGjvbrvHSBcPt28QFGctiStqchcGMj84YSd9T1D4 TCXwvY0VcTwsWbigxJbWex6ZBM1iDGvjHs/sEBq/BsbS7H7TdYndPp2C6XIi03R7wNjr TDzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=iNQTvVUSmgNuLxw/E1kf9kiRXgGAedbtzYJ7h/7MhiM=; b=cYcHvcIRXR9U/XgA5oCCFCwbRsiVIAiBsz6jMhZs92ve1u0wPt+YvBv+MEqcKxfHi/ +aWh637Q0ruRVu0asyby5Y6TfcP73Ry57qFux/t9/2wE13KwuFBbPaOogqB8W4zSu0cN uojUkG8rjGiNQgk47uWVYL0BnUtFidTOvBuILyclF8SrtIarMtK3koEJtSFLlcTGN7Hk NUFhAINvz/kRIjRpkcQ4alEegqXxPejkqv9kyKevn3lJUK8cHqMePEU8Gtel5Ah8CYhQ G3L+h15PpoRceEwvi+0edHx/5ee1D2SRde9AUsm6eCe3bmsUm3ADEIeRM77tF1atVJOa REPw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2018-07-02 header.b=xIAw4zPP; 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=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f16si295006plr.340.2019.06.25.06.16.15; Tue, 25 Jun 2019 06:16:30 -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=pass header.i=@oracle.com header.s=corp-2018-07-02 header.b=xIAw4zPP; 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=pass (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732450AbfFYMAo (ORCPT + 99 others); Tue, 25 Jun 2019 08:00:44 -0400 Received: from aserp2120.oracle.com ([141.146.126.78]:54916 "EHLO aserp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731509AbfFYMAn (ORCPT ); Tue, 25 Jun 2019 08:00:43 -0400 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x5PBwkuP132922; Tue, 25 Jun 2019 12:00:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references; s=corp-2018-07-02; bh=iNQTvVUSmgNuLxw/E1kf9kiRXgGAedbtzYJ7h/7MhiM=; b=xIAw4zPPw23qdkXzzO7kIYWXxKfuSWEZME+9rRcJ1KvLaeHHFqrGGzTHONRNQHR7BvVZ iK/Wag51OR8USF4fgGFhHZ5vUQwTXO7LO8xhdrYFJjhRsgd51IIKWgto3cQmrs+kX1iB C5PUWNcg8xG3ReOM2UlG+VGrJaSp3A2yktkKQP6bydJ+7Nd8+hyXdMeuv7X5SN8805fl Etm7qGx+urDGi96IDdT9cOP1lnHDUiJUC8Be6ypgeuoJyuZ4lDJPECpRaL9udvR4pEai i9dIB1JcfOepxDS7yGP06jlhELtV3mRA8Wqx/52aQBiPJ3uJS0TyyvcLdC6iPIwbgA2D 8A== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2120.oracle.com with ESMTP id 2t9c9pkv6n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2019 12:00:06 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x5PBxTnS064989; Tue, 25 Jun 2019 12:00:06 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserp3030.oracle.com with ESMTP id 2t9acc2gnd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2019 12:00:05 +0000 Received: from abhmp0010.oracle.com (abhmp0010.oracle.com [141.146.116.16]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x5PC046Z027550; Tue, 25 Jun 2019 12:00:04 GMT Received: from z2.cn.oracle.com (/10.182.69.87) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 25 Jun 2019 05:00:04 -0700 From: Zhenzhong Duan To: linux-kernel@vger.kernel.org Cc: tglx@linutronix.de, mingo@kernel.org, bp@alien8.de, hpa@zytor.com, boris.ostrovsky@oracle.com, jgross@suse.com, sstabellini@kernel.org, peterz@infradead.org, srinivas.eeda@oracle.com, Zhenzhong Duan , Ingo Molnar , xen-devel@lists.xenproject.org Subject: [PATCH v2 5/7] x86/xen: nopv parameter support for HVM guest Date: Mon, 24 Jun 2019 20:02:57 +0800 Message-Id: <1561377779-28036-6-git-send-email-zhenzhong.duan@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1561377779-28036-1-git-send-email-zhenzhong.duan@oracle.com> References: <1561377779-28036-1-git-send-email-zhenzhong.duan@oracle.com> X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9298 signatures=668687 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=1 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1906250097 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9298 signatures=668687 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1906250097 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PVH guest needs PV extentions to work, so nopv parameter is ignored for PVH but not for HVM guest. In order for nopv parameter to take effect for HVM guest, we need to distinguish between PVH and HVM guest early in hypervisor detection code. By moving the detection of PVH in xen_platform_hvm(), xen_pvh_domain() could be used for that purpose. Signed-off-by: Zhenzhong Duan Cc: Boris Ostrovsky Cc: Juergen Gross Cc: Stefano Stabellini Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: xen-devel@lists.xenproject.org --- arch/x86/xen/enlighten_hvm.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c index 7fcb4ea..26939e7 100644 --- a/arch/x86/xen/enlighten_hvm.c +++ b/arch/x86/xen/enlighten_hvm.c @@ -25,6 +25,7 @@ #include "mmu.h" #include "smp.h" +extern bool nopv; static unsigned long shared_info_pfn; void xen_hvm_init_shared_info(void) @@ -226,20 +227,24 @@ static uint32_t __init xen_platform_hvm(void) if (xen_pv_domain()) return 0; +#ifdef CONFIG_XEN_PVH + /* Test for PVH domain (PVH boot path taken overrides ACPI flags). */ + if (!x86_platform.legacy.rtc && x86_platform.legacy.no_vga) + xen_pvh = true; +#endif + + if (!xen_pvh_domain() && nopv) + return 0; + return xen_cpuid_base(); } static __init void xen_hvm_guest_late_init(void) { #ifdef CONFIG_XEN_PVH - /* Test for PVH domain (PVH boot path taken overrides ACPI flags). */ - if (!xen_pvh && - (x86_platform.legacy.rtc || !x86_platform.legacy.no_vga)) + if (!xen_pvh) return; - /* PVH detected. */ - xen_pvh = true; - /* Make sure we don't fall back to (default) ACPI_IRQ_MODEL_PIC. */ if (!nr_ioapics && acpi_irq_model == ACPI_IRQ_MODEL_PIC) acpi_irq_model = ACPI_IRQ_MODEL_PLATFORM; @@ -258,4 +263,5 @@ static __init void xen_hvm_guest_late_init(void) .init.init_mem_mapping = xen_hvm_init_mem_mapping, .init.guest_late_init = xen_hvm_guest_late_init, .runtime.pin_vcpu = xen_pin_vcpu, + .ignore_nopv = true, }; -- 1.8.3.1