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:54:55 -0400 Message-ID: <53BC3E7F.5070907@oracle.com> References: <1404845329-13444-1-git-send-email-konrad@kernel.org> <53BC36F8.6020801@oracle.com> <20140708184745.GB15548@laptop.dumpdata.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1X4aVa-0004TJ-OT for xen-devel@lists.xenproject.org; Tue, 08 Jul 2014 18:52:54 +0000 In-Reply-To: <20140708184745.GB15548@laptop.dumpdata.com> 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 Rzeszutek Wilk Cc: konrad@kernel.org, david.vrabel@citrix.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org On 07/08/2014 02:47 PM, Konrad Rzeszutek Wilk wrote: > On Tue, Jul 08, 2014 at 02:22:48PM -0400, Boris Ostrovsky wrote: >> 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. > disable_pv ? > > disable? > > xen_pvoff ? > > ignore_xen ? How about xen_nopv, to be consistent with the boot option. -boris > > >> -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())