This series of patches updates the Book3S-HV KVM code that manages the guest hashed page table (HPT) to enable several things: * MMIO emulation and MMIO pass-through * Use of small pages (4kB or 64kB, depending on config) to back the guest memory * Pageable guest memory - i.e. backing pages can be removed from the guest and reinstated on demand, using the MMU notifier mechanism. * Guests can be given read-only access to pages even though they think they have mapped them read/write. When they try to write to them their access is upgraded to read/write. This allows KSM to share pages between guests. On PPC970 we have no way to get DSIs and ISIs to come to the hypervisor, so we can't do MMIO emulation or pageable guest memory. On POWER7 we set the VPM1 bit in the LPCR to make all DSIs and ISIs come to the hypervisor (host) as HDSIs or HISIs. This code is working well in my tests. The sporadic crashes that I was seeing earlier are fixed by the first patch in the series. Somewhat to my surprise, when I implemented the last patch in the series I started to see KSM coalescing pages without any further effort on my part -- my tests were on a machine with Fedora 16 installed, and it has ksmtuned running by default. This series is on top of Alex Graf's kvm-ppc-next branch, although the last patch on that branch ("KVM: PPC: booke: Improve timer register emulation") is causing the decrementer not to work properly in Book3S HV guests, for reasons that I haven't fully determined yet. These patches only touch arch/powerpc except for patch 11, which adds a couple of barriers to allow mmu_notifier_retry() to be used outside of the kvm->mmu_lock. Unlike the previous version of these patches, we don't look at what's mapped in the user address space at the time that kvmppc_core_prepare_memory_region or kvmppc_core_commit_memory_region gets called; we look up pages only when they are needed, either because the guest wants to map them with an H_ENTER hypercall, or for the pages needed for the virtual real-mode area (VRMA), at the time of the first VCPU_RUN ioctl. Paul. -- 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