public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] xen: Introduce 'xen_nopv' to disable PV extensions for HVM guests.
@ 2014-07-08 20:52 konrad
  2014-07-09 12:10 ` [Xen-devel] " David Vrabel
  0 siblings, 1 reply; 3+ messages in thread
From: konrad @ 2014-07-08 20:52 UTC (permalink / raw)
  To: xen-devel, david.vrabel, boris.ostrovsky, linux-kernel
  Cc: Konrad Rzeszutek Wilk

From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

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 <konrad.wilk@oracle.com>
---
[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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Xen-devel] [PATCH v2] xen: Introduce 'xen_nopv' to disable PV extensions for HVM guests.
  2014-07-08 20:52 [PATCH v2] xen: Introduce 'xen_nopv' to disable PV extensions for HVM guests konrad
@ 2014-07-09 12:10 ` David Vrabel
  2014-07-09 13:55   ` Konrad Rzeszutek Wilk
  0 siblings, 1 reply; 3+ messages in thread
From: David Vrabel @ 2014-07-09 12:10 UTC (permalink / raw)
  To: konrad, xen-devel, david.vrabel, boris.ostrovsky, linux-kernel

On 08/07/14 21:52, konrad@kernel.org wrote:
> From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> 
> 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 <david.vrabel@citrix.com>

David


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Xen-devel] [PATCH v2] xen: Introduce 'xen_nopv' to disable PV extensions for HVM guests.
  2014-07-09 12:10 ` [Xen-devel] " David Vrabel
@ 2014-07-09 13:55   ` Konrad Rzeszutek Wilk
  0 siblings, 0 replies; 3+ messages in thread
From: Konrad Rzeszutek Wilk @ 2014-07-09 13:55 UTC (permalink / raw)
  To: David Vrabel; +Cc: konrad, xen-devel, boris.ostrovsky, linux-kernel

On Wed, Jul 09, 2014 at 01:10:03PM +0100, David Vrabel wrote:
> On 08/07/14 21:52, konrad@kernel.org wrote:
> > From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> > 
> > 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 <david.vrabel@citrix.com>

Thank you.

> 
> David
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-07-09 13:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-08 20:52 [PATCH v2] xen: Introduce 'xen_nopv' to disable PV extensions for HVM guests konrad
2014-07-09 12:10 ` [Xen-devel] " David Vrabel
2014-07-09 13:55   ` Konrad Rzeszutek Wilk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox