mbox series

[0/4] KVM: PPC: Book3S HV: Improve live migration of radix guests

Message ID 20181212041430.GA22265@blackberry (mailing list archive)
Headers show
Series KVM: PPC: Book3S HV: Improve live migration of radix guests | expand

Message

Paul Mackerras Dec. 12, 2018, 4:14 a.m. UTC
We have observed that live migration of radix guests tends to converge
slowly and sometimes doesn't converge at all.  This appears to be due
largely to the fact that if the host is using transparent huge pages,
page dirtiness only gets tracked with a 2MB granularity for the parts
of the guest memory that are mapped using 2MB pages.  The fix is to
break down the mappings in the partition-scoped page tables to 64k
pages (or 4k pages if 4k is the system page size).  This is
accomplished by flushing the partition-scoped page tables when turning
dirty page tracking on or off, and by only inserting small-page PTEs
into the partition-scoped page tables while dirty page tracking is
enabled.

Paul.

 arch/powerpc/include/asm/kvm_book3s.h    | 11 +++++-----
 arch/powerpc/include/asm/kvm_book3s_64.h |  2 +-
 arch/powerpc/include/asm/kvm_ppc.h       |  6 ++++--
 arch/powerpc/kvm/book3s.c                |  5 +++--
 arch/powerpc/kvm/book3s_64_mmu_hv.c      |  9 ++++----
 arch/powerpc/kvm/book3s_64_mmu_radix.c   | 37 ++++++++++++++++++++++++++------
 arch/powerpc/kvm/book3s_hv.c             | 20 ++++++++++++++++-
 arch/powerpc/kvm/book3s_hv_nested.c      |  2 +-
 arch/powerpc/kvm/book3s_hv_rm_mmu.c      |  2 +-
 arch/powerpc/kvm/book3s_pr.c             |  3 ++-
 arch/powerpc/kvm/powerpc.c               |  2 +-
 11 files changed, 73 insertions(+), 26 deletions(-)

Comments

Paul Mackerras Dec. 18, 2018, 1:02 a.m. UTC | #1
On Wed, Dec 12, 2018 at 03:14:30PM +1100, Paul Mackerras wrote:
> We have observed that live migration of radix guests tends to converge
> slowly and sometimes doesn't converge at all.  This appears to be due
> largely to the fact that if the host is using transparent huge pages,
> page dirtiness only gets tracked with a 2MB granularity for the parts
> of the guest memory that are mapped using 2MB pages.  The fix is to
> break down the mappings in the partition-scoped page tables to 64k
> pages (or 4k pages if 4k is the system page size).  This is
> accomplished by flushing the partition-scoped page tables when turning
> dirty page tracking on or off, and by only inserting small-page PTEs
> into the partition-scoped page tables while dirty page tracking is
> enabled.
> 
> Paul.

Series applied to my kvm-ppc-next branch.

Paul.