[PATCH v2 0/2] KVM: PPC: Book3S HV: Optimize for MMIO emulation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Today, for each emulated MMIO operation, there is a long path from
page fault to kvmppc_hv_emulate_mmio(), include looking up Hash Page
Table, locking HPTE twice and searching mmio gfn from memslots.

This series introduced a cache mechanism for MMIO HPTEs to shorten
the path, which will improve the IO performance of emulated device,
especially virtio device. Because currently almost all of virtio
nofications(Port IO access) will hit the same HPTE.

In this series, patch 1 fixed a bug on key field of HPTE; patch 2
implemented the per vcpu cache for recently page faulted MMIO
entries.

The performance test result:

FIO(null_blk, iops)
===========================

    Before	After
1st 32095	32616
2nd 32032	32635
3rd 32057	32638
4th 32005	32598
5th 32069	32628

NetPerf(TCP_RR, Trans.Rate per sec)
===========================

    Before	After
1st 30734.66	31328.63
2nd 30749.26	31337.77
3rd 30825.99	31278.19
4th 30708.94	31350.81
5th 30832.35	31484.80 

Changelog v2:
- Fix a bug of the function is_mmio_hpte()
- Add some performance test results

Yongji Xie (2):
  KVM: PPC: Book3S HV: Clear the key field of HPTE when the page is paged out
  KVM: PPC: Book3S HV: Add a per vcpu cache for recently page faulted MMIO entries

 arch/powerpc/include/asm/kvm_host.h |   21 ++++++
 arch/powerpc/kvm/book3s_64_mmu_hv.c |   20 ++++++-
 arch/powerpc/kvm/book3s_hv.c        |    9 +++
 arch/powerpc/kvm/book3s_hv_rm_mmu.c |  122 +++++++++++++++++++++++++++++------
 4 files changed, 151 insertions(+), 21 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux