2014-07-08 19:51:00

by Konrad Rzeszutek Wilk

[permalink] [raw]
Subject: [PATCH v2] xen: Introduce 'xen_nopv' to disable PV extensions for HVM guests.

From: Konrad Rzeszutek Wilk <[email protected]>

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 <[email protected]>
---
[v2: s/off/xen_nopv/ per Boris Ostrovsky recommendation.]
---
Documentation/kernel-parameters.txt | 4 ++++
arch/x86/xen/enlighten.c | 13 +++++++++++++
2 files changed, 17 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:
<irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index e220197..7aa59ef 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 xen_nopv = false;
+static __init int xen_parse_nopv(char *arg)
+{
+ xen_nopv = 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 (xen_nopv)
+ return 0;
+
if (xen_pv_domain())
return 0;

@@ -1953,6 +1964,8 @@ static uint32_t __init xen_hvm_platform(void)

bool xen_hvm_need_lapic(void)
{
+ if (xen_nopv)
+ return false;
if (xen_pv_domain())
return false;
if (!xen_hvm_domain())
--
1.7.7.6


2014-07-09 12:10:24

by David Vrabel

[permalink] [raw]
Subject: Re: [Xen-devel] [PATCH v2] xen: Introduce 'xen_nopv' to disable PV extensions for HVM guests.

On 08/07/14 21:52, [email protected] wrote:
> From: Konrad Rzeszutek Wilk <[email protected]>
>
> 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.

If it's "perfect" what's this option for? ;)

I think you mean to say "which is the best option for the majority of
use cases".

> 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.

"working"

I'm unconvinced about the utility of this option. The resulting kernel
will go like molasses and I'm not sure what the use of being any to
benchmark a configuration no one will use in practice. But it's a small
patch so

Reviewed-by: David Vrabel <[email protected]>

David

2014-07-09 13:55:31

by Konrad Rzeszutek Wilk

[permalink] [raw]
Subject: Re: [Xen-devel] [PATCH v2] xen: Introduce 'xen_nopv' to disable PV extensions for HVM guests.

On Wed, Jul 09, 2014 at 01:10:03PM +0100, David Vrabel wrote:
> On 08/07/14 21:52, [email protected] wrote:
> > From: Konrad Rzeszutek Wilk <[email protected]>
> >
> > 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.
>
> If it's "perfect" what's this option for? ;)

:-)
>
> I think you mean to say "which is the best option for the majority of
> use cases".

Yes!
>
> > 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.
>
> "working"
>
> I'm unconvinced about the utility of this option. The resulting kernel
> will go like molasses and I'm not sure what the use of being any to
> benchmark a configuration no one will use in practice. But it's a small
> patch so
>
> Reviewed-by: David Vrabel <[email protected]>

Thank you.

>
> David
>
>
> _______________________________________________
> Xen-devel mailing list
> [email protected]
> http://lists.xen.org/xen-devel