Received: by 2002:a25:f815:0:0:0:0:0 with SMTP id u21csp2481681ybd; Mon, 24 Jun 2019 07:11:46 -0700 (PDT) X-Google-Smtp-Source: APXvYqyxj9htuzOQEU1m7+Oq8NFB8hHRFmtLggj7F6PsSncwHHhYVaPhheQkQAIL6epEK9cGT2Md X-Received: by 2002:a17:902:2a69:: with SMTP id i96mr139008395plb.108.1561385506625; Mon, 24 Jun 2019 07:11:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1561385506; cv=none; d=google.com; s=arc-20160816; b=Sjq0uBNRdCgz+k9PRAWk3JIyktFva/4tJ7efWtdT5/2m3VTB8NjXRx4CDrWnG0R/V8 OD+d8gtbpv8RAqg6/boLkhZM1xyKp3A5hIT7MrTm78klQEb95MheH6Ji167Xczc7Pi3i WL7a2AhhybUa0CwyLs6Pf0pAiF/XVij0WaXmF6QArV+Wrxmwyvg3YROPAJW2c5zL0Za3 N5FP9RQbJd8LExEUrau1EsfO2ggKLh6M14h/9xebcXmqjogpZ5q6j6KvC5fShNgVil05 4K/T1WRQ0BmLL4l/L0ZWjirUy8FRu2aHLCPplMGPXK86UzRPqMTP452X4CrSaV+RkPKG r+DA== 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=KLBclTheGjubyUpbAx+QHqK/8lekhX1YiHOk2x91wZU=; b=mVMnyn8AwDZeoWscW1GSstfwHcdSNaRa+N3SnDO+wgOU1dYZRZZRKfFOO2UeIKtsuR dZDa+WpLhwvCIVvlsInjuv7UW48FDuSjqA1oS5LAQYntrFzrXG1qu5pyNs8YTJq6ghX9 s1meh4DDS9hFnuewDS0GkmCF9CteUhzRE5KK5je3VoszAbi9rPbjxgkZL60gcIUR/h72 KwvCWCuCVVenP20gJvaKnNouwi2TMH6OX3DWmwpRVmcyqSKI/nu/xBrmjIIsHis180k7 VC93Ldindge9hdZDKO8jszILeMe8htnSGN5v83ZKDm6T40FbBH1tqAvxeNDEsVpvK8+a Az2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@oracle.com header.s=corp-2018-07-02 header.b=LyMN2+S4; 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 r3si10403561plb.14.2019.06.24.07.11.30; Mon, 24 Jun 2019 07:11:46 -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=LyMN2+S4; 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 S1730084AbfFXM6l (ORCPT + 99 others); Mon, 24 Jun 2019 08:58:41 -0400 Received: from userp2120.oracle.com ([156.151.31.85]:37100 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725916AbfFXM6j (ORCPT ); Mon, 24 Jun 2019 08:58:39 -0400 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x5OCsGs3142975; Mon, 24 Jun 2019 12:58:20 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=KLBclTheGjubyUpbAx+QHqK/8lekhX1YiHOk2x91wZU=; b=LyMN2+S4uJvGq8XmNHJVvnpR67iAGd3vC6p4NbKp3UGqqh4hnJ9n8WxpSKKmi4Jq8JWn vo8c0Il2jxhJWGEvd9ahOI+n4i2himzhdZR4vvA2N/aDN0CqcyDLMII1wgbKEvvm5A/P Zm3lD6r1Gzixk0z+MBa7gZWBtxhw05yVJgoYZBEETB2c+RnkUQ5LfS95bmEd/U9tTXHG q60lAks2RT9jdaavL6NcYWtwKXbVxTs95p5DBu7Aq/dLJwxj7e/imHCpHNXsiduY+B1J HtFLAFK4xvdKTw5CCwv6wsjcnxfP4Gd7hBPb70KhOrNxKahyU28PKMzhUq9unFMU5nMV Jg== Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2120.oracle.com with ESMTP id 2t9cyq66qa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jun 2019 12:58:20 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x5OCwBQl108078; Mon, 24 Jun 2019 12:58:19 GMT Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserp3020.oracle.com with ESMTP id 2t9p6tjnhh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jun 2019 12:58:19 +0000 Received: from abhmp0016.oracle.com (abhmp0016.oracle.com [141.146.116.22]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x5OCwHri010630; Mon, 24 Jun 2019 12:58:17 GMT Received: from z2.cn.oracle.com (/10.182.69.87) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 24 Jun 2019 05:58:16 -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, Zhenzhong Duan , xen-devel@lists.xenproject.org Subject: [PATCH 3/6] x86: Add nopv parameter to disable PV extensions Date: Sun, 23 Jun 2019 21:01:40 +0800 Message-Id: <1561294903-6166-3-git-send-email-zhenzhong.duan@oracle.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1561294903-6166-1-git-send-email-zhenzhong.duan@oracle.com> References: <1561294903-6166-1-git-send-email-zhenzhong.duan@oracle.com> X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9297 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-1906240106 X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9297 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=1011 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-1906240105 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In virtualization environment, PV extensions (drivers, interrupts, timers, etc) are enabled in the majority of use cases which is the best option. However, in some cases (kexec not fully working, benchmarking) we want to disable PV extensions. As such introduce the 'nopv' parameter that will do it. There is already 'xen_nopv' parameter for XEN platform but not for others. 'xen_nopv' can then be removed with this change. Signed-off-by: Zhenzhong Duan Cc: xen-devel@lists.xenproject.org --- Documentation/admin-guide/kernel-parameters.txt | 4 ++++ arch/x86/kernel/cpu/hypervisor.c | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt index 138f666..b352f36 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -5268,6 +5268,10 @@ improve timer resolution at the expense of processing more timer interrupts. + nopv= [X86] + Disables the PV optimizations forcing the guest to run + as generic guest with no PV drivers. + xirc2ps_cs= [NET,PCMCIA] Format: ,,,,,[,[,[,]]] diff --git a/arch/x86/kernel/cpu/hypervisor.c b/arch/x86/kernel/cpu/hypervisor.c index 479ca47..4f2c875 100644 --- a/arch/x86/kernel/cpu/hypervisor.c +++ b/arch/x86/kernel/cpu/hypervisor.c @@ -85,10 +85,21 @@ static void __init copy_array(const void *src, void *target, unsigned int size) to[i] = from[i]; } +static bool nopv; +static __init int xen_parse_nopv(char *arg) +{ + nopv = true; + return 0; +} +early_param("nopv", xen_parse_nopv); + void __init init_hypervisor_platform(void) { const struct hypervisor_x86 *h; + if (nopv) + return; + h = detect_hypervisor_vendor(); if (!h) -- 1.8.3.1