All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] x86/vmx: enable PML by default
@ 2015-11-27  8:51 Kai Huang
  2015-11-27  9:42 ` Andrew Cooper
  2015-12-02  2:37 ` Tian, Kevin
  0 siblings, 2 replies; 3+ messages in thread
From: Kai Huang @ 2015-11-27  8:51 UTC (permalink / raw)
  To: jbeulich, andrew.cooper3, kevin.tian, xen-devel; +Cc: Kai Huang

Since PML series were merged (but disabled by default) we have conducted lots of
PML tests (live migration, GUI display) and PML has been working fine, therefore
turn it on by default.

Document of PML command line is adjusted accordingly as well.

Signed-off-by: Kai Huang <kai.huang@linux.intel.com>
Tested-by: Robert Hu <robert.hu@intel.com>
Tested-by: Xudong Hao <xudong.hao@intel.com>
---

v1->v2: Document of PML command line is adjusted accordingly as well.

In case you might want some specific performance data to better get convinced to
turn PML on by default, I pasted the specjbb performance data (running in guest
which was in log-dirty mode) I gathered when I was posting the PML patch series
to xen-devel mailing list for review for your reference.

======================== specjbb performance ===========================

I measured specjbb performance in guest when guest is in video ram tracking mode
(the most usual case I think), and when guest is in global log-dirty mode (I
made some change in XL tool to put guest global log-dirty mode infinitely, see
below), from which we can see that PML does improved the specjbb performance in
guest while guest is in log-dirty mode, and the more frequently dirty pages are
queried, the more performance gain we will have. So while PML probably can't
speed up live migration process directly, it will be benefical for use cases
such as guest memory dirty speed monitoring.

- video ram tracking:

    WP              PML         
    122805          123887
    120792          123249
    118577          123348
    121856          125195
    121286          122056
    120139          123037

avg 120909          123462      
    
    100%            102.11%    

performance gain:   2.11%                 

- global log-dirty:

    WP              PML
    72862           79511
    73466           81173
    72989           81177
    73138           81777
    72811           80257
    72486           80413

avg 72959           80718
    100%            110.63%

performance gain: 10.63%

Test machine: Boardwell server with 16 CPUs (1.6G) + 4G memory.
Xen hypervisor: lastest upstream Xen
dom0 kernel: 3.16.0
guest: 4 vcpus + 1G memory.
guest os: ubuntu 14.04 with 3.13.0-24-generic kernel.

---
 docs/misc/xen-command-line.markdown | 2 +-
 xen/arch/x86/hvm/vmx/vmcs.c         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown
index c103894..47d148a 100644
--- a/docs/misc/xen-command-line.markdown
+++ b/docs/misc/xen-command-line.markdown
@@ -715,7 +715,7 @@ Controls EPT related features.
 
 > `pml`
 
-> Default: `false`
+> Default: `true`
 
 >> PML is a new hardware feature in Intel's Broadwell Server and further
 >> platforms which reduces hypervisor overhead of log-dirty mechanism by
diff --git a/xen/arch/x86/hvm/vmx/vmcs.c b/xen/arch/x86/hvm/vmx/vmcs.c
index 7a7896e..dbf284d 100644
--- a/xen/arch/x86/hvm/vmx/vmcs.c
+++ b/xen/arch/x86/hvm/vmx/vmcs.c
@@ -64,7 +64,7 @@ integer_param("ple_gap", ple_gap);
 static unsigned int __read_mostly ple_window = 4096;
 integer_param("ple_window", ple_window);
 
-static bool_t __read_mostly opt_pml_enabled = 0;
+static bool_t __read_mostly opt_pml_enabled = 1;
 static s8 __read_mostly opt_ept_ad = -1;
 
 /*
-- 
2.5.0

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

* Re: [PATCH v2] x86/vmx: enable PML by default
  2015-11-27  8:51 [PATCH v2] x86/vmx: enable PML by default Kai Huang
@ 2015-11-27  9:42 ` Andrew Cooper
  2015-12-02  2:37 ` Tian, Kevin
  1 sibling, 0 replies; 3+ messages in thread
From: Andrew Cooper @ 2015-11-27  9:42 UTC (permalink / raw)
  To: Kai Huang, jbeulich, kevin.tian, xen-devel

On 27/11/15 08:51, Kai Huang wrote:
> Since PML series were merged (but disabled by default) we have conducted lots of
> PML tests (live migration, GUI display) and PML has been working fine, therefore
> turn it on by default.
>
> Document of PML command line is adjusted accordingly as well.
>
> Signed-off-by: Kai Huang <kai.huang@linux.intel.com>
> Tested-by: Robert Hu <robert.hu@intel.com>
> Tested-by: Xudong Hao <xudong.hao@intel.com>

Reviewed-and-tested-by: Andrew Cooper <andrew.cooper3@citrix.com>

We have done our own evaluation and just turned it on by default in
XenServer.

~Andrew

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

* Re: [PATCH v2] x86/vmx: enable PML by default
  2015-11-27  8:51 [PATCH v2] x86/vmx: enable PML by default Kai Huang
  2015-11-27  9:42 ` Andrew Cooper
@ 2015-12-02  2:37 ` Tian, Kevin
  1 sibling, 0 replies; 3+ messages in thread
From: Tian, Kevin @ 2015-12-02  2:37 UTC (permalink / raw)
  To: Kai Huang, jbeulich@suse.com, andrew.cooper3@citrix.com,
	xen-devel@lists.xen.org

> From: Kai Huang [mailto:kai.huang@linux.intel.com]
> Sent: Friday, November 27, 2015 4:52 PM
> 
> Since PML series were merged (but disabled by default) we have conducted lots of
> PML tests (live migration, GUI display) and PML has been working fine, therefore
> turn it on by default.
> 
> Document of PML command line is adjusted accordingly as well.
> 
> Signed-off-by: Kai Huang <kai.huang@linux.intel.com>
> Tested-by: Robert Hu <robert.hu@intel.com>
> Tested-by: Xudong Hao <xudong.hao@intel.com>

Acked-by: Kevin Tian <kevin.tian@intel.com>

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

end of thread, other threads:[~2015-12-02  2:37 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-27  8:51 [PATCH v2] x86/vmx: enable PML by default Kai Huang
2015-11-27  9:42 ` Andrew Cooper
2015-12-02  2:37 ` Tian, Kevin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.