From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: Re: [PATCH] xen: Introduce 'xen_nopv' to disable PV extensions for HVM guests. Date: Tue, 08 Jul 2014 14:22:48 -0400 Message-ID: <53BC36F8.6020801@oracle.com> References: <1404845329-13444-1-git-send-email-konrad@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1X4a0W-0002lp-IU for xen-devel@lists.xenproject.org; Tue, 08 Jul 2014 18:20:48 +0000 In-Reply-To: <1404845329-13444-1-git-send-email-konrad@kernel.org> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: konrad@kernel.org, xen-devel@lists.xenproject.org, david.vrabel@citrix.com List-Id: xen-devel@lists.xenproject.org On 07/08/2014 02:48 PM, konrad@kernel.org wrote: > From: Konrad Rzeszutek Wilk > > By default when CONFIG_XEN and CONFIG_XEN_PVHVM kernels are > run, they will enable the PV extensions (drivers, interrupts, timers, > etc) - which is perfect. > > However, in some cases (kexec not fully wokring, benchmarking) > we want to disable Xen PV extensions. As such introduce the > 'xen_nopv' parameter that will do it. > > Signed-off-by: Konrad Rzeszutek Wilk > --- > Documentation/kernel-parameters.txt | 4 ++++ > arch/x86/xen/enlighten.c | 14 ++++++++++++++ > 2 files changed, 18 insertions(+), 0 deletions(-) > > diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt > index c1b9aa8..5dcfa6e 100644 > --- a/Documentation/kernel-parameters.txt > +++ b/Documentation/kernel-parameters.txt > @@ -3691,6 +3691,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. > Disables the ticketlock slowpath using Xen PV > optimizations. > > + xen_nopv [X86,XEN] > + Disables the PV optimizations forcing the guest to run > + as generic HVM guest with no PV drivers. > + > xirc2ps_cs= [NET,PCMCIA] > Format: > ,,,,,[,[,[,]]] > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c > index e220197..fec8963 100644 > --- a/arch/x86/xen/enlighten.c > +++ b/arch/x86/xen/enlighten.c > @@ -1930,10 +1930,21 @@ static void __init xen_hvm_guest_init(void) > #endif > } > > +static bool off = false; A more descriptive name would be better. -boris > +static __init int xen_parse_nopv(char *arg) > +{ > + off = true; > + return 0; > +} > +early_param("xen_nopv", xen_parse_nopv); > + > static uint32_t __init xen_hvm_platform(void) > { > uint32_t eax, ebx, ecx, edx, base; > > + if (off) > + return 0; > + > if (xen_pv_domain()) > return 0; > > @@ -1953,6 +1964,9 @@ static uint32_t __init xen_hvm_platform(void) > > bool xen_hvm_need_lapic(void) > { > + if (off) > + return false; > + > if (xen_pv_domain()) > return false; > if (!xen_hvm_domain())