Skip to content

PML (Page Modification Logging) support

Kai Huang xen-devel 3 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v3 Latest10 patches 11 repliesIn review
  2. v211 patches 50 repliesSuperseded
  3. v110 patches 54 repliesSuperseded

Changes in v3 from the cover letter

- Merged v2 patch 02 (document change) to patch 01 as a single patch, and changed new parameter description as suggested by Andrew.
- changed vmx_vcpu_flush_pml_buffer to call mark_dirty for all logged GFNs, and call p2m_change_type_one regardless of return value.
- Added ASSERT for vcpu (being current, or being non-running and unrunnable) to vmx_vcpu_flush_pml_buffer
- Other refinement in coding style, comments description, etc.

Patches in v3 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/10vmx: add new boot parameter to control PML enablingdocs/misc/xen-command-line.markdown xen/arch/x86/hvm/vmx/vmcs.c+45 -07 replies
2/10log-dirty: add new paging_mark_gfn_dirtyxen/arch/x86/mm/paging.c xen/include/asm-x86/paging.h+23 -100 replies
3/10vmx: add PML definition and feature detectionxen/arch/x86/hvm/vmx/vmcs.c xen/include/asm-x86/hvm/vmx/vmcs.h xen/include/asm-x86/hvm/vmx/vmx.h+25 -00 replies
4/10vmx: add new data structure member to support PMLxen/include/asm-x86/hvm/vmx/vmcs.h+8 -00 replies
5/10vmx: add help functions to support PMLxen/arch/x86/hvm/vmx/vmcs.c xen/include/asm-x86/hvm/vmx/vmcs.h+188 -00 replies
6/10vmx: handle PML buffer full VMEXITxen/arch/x86/hvm/vmx/vmx.c+4 -00 replies
7/10vmx: handle PML enabling in vmx_vcpu_initialisexen/arch/x86/hvm/vmx/vmx.c+23 -00 replies
8/10vmx: disable PML in vmx_vcpu_destroyxen/arch/x86/hvm/vmx/vmx.c+8 -00 replies
9/10log-dirty: refine common code to support PMLxen/arch/x86/mm/hap/hap.c xen/arch/x86/mm/p2m.c xen/arch/x86/mm/paging.c +1 more+82 -40 replies
10/10p2m/ept: enable PML in p2m-ept for log-dirtyxen/arch/x86/mm/p2m-ept.c xen/include/asm-x86/hvm/vmx/vmcs.h xen/include/asm-x86/hvm/vmx/vmx.h+76 -90 replies

Reviews trailers per patch

1 of 10 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchAndrew CooperTim DeeganKevin Tian
SeriesA-b A-b
1/10R-b
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v3 thread

Cover letter [v3 00/10] PML (Page Modification Logging) support

v2->v3:

- Merged v2 patch 02 (document change) to patch 01 as a single patch, and changed new parameter description as suggested by Andrew.
- changed vmx_vcpu_flush_pml_buffer to call mark_dirty for all logged GFNs, and call p2m_change_type_one regardless of return value.
- Added ASSERT for vcpu (being current, or being non-running and unrunnable) to vmx_vcpu_flush_pml_buffer
- Other refinement in coding style, comments description, etc.

Sanity test of live migration has been tested both with and without PML.

Kai Huang (10):
vmx: add new boot parameter to control PML enabling
log-dirty: add new paging_mark_gfn_dirty
vmx: add PML definition and feature detection
vmx: add new data structure member to support PML
vmx: add help functions to support PML
vmx: handle PML buffer full VMEXIT
vmx: handle PML enabling in vmx_vcpu_initialise
vmx: disable PML in vmx_vcpu_destroy
log-dirty: refine common code to support PML p2m/ept: enable PML in p2m-ept for log-dirty

 docs/misc/xen-command-line.markdown |  15 +++
 xen/arch/x86/hvm/vmx/vmcs.c         | 227 ++++++++++++++++++++++++++++++++++++
 xen/arch/x86/hvm/vmx/vmx.c          |  35 ++++++
 xen/arch/x86/mm/hap/hap.c           |  29 ++++-
 xen/arch/x86/mm/p2m-ept.c           |  79 +++++++++++--
 xen/arch/x86/mm/p2m.c               |  36 ++++++
 xen/arch/x86/mm/paging.c            |  41 +++++--
 xen/include/asm-x86/hvm/vmx/vmcs.h  |  26 ++++-
 xen/include/asm-x86/hvm/vmx/vmx.h   |   4 +-
 xen/include/asm-x86/p2m.h           |  11 ++
 xen/include/asm-x86/paging.h        |   2 +
 11 files changed, 482 insertions(+), 23 deletions(-)
Signature · 1 line
2.1.0