linux/arch/powerpc/kvm
Paul Mackerras dfe49dbd1f KVM: PPC: Book3S HV: Handle memory slot deletion and modification correctly
This adds an implementation of kvm_arch_flush_shadow_memslot for
Book3S HV, and arranges for kvmppc_core_commit_memory_region to
flush the dirty log when modifying an existing slot.  With this,
we can handle deletion and modification of memory slots.

kvm_arch_flush_shadow_memslot calls kvmppc_core_flush_memslot, which
on Book3S HV now traverses the reverse map chains to remove any HPT
(hashed page table) entries referring to pages in the memslot.  This
gets called by generic code whenever deleting a memslot or changing
the guest physical address for a memslot.

We flush the dirty log in kvmppc_core_commit_memory_region for
consistency with what x86 does.  We only need to flush when an
existing memslot is being modified, because for a new memslot the
rmap array (which stores the dirty bits) is all zero, meaning that
every page is considered clean already, and when deleting a memslot
we obviously don't care about the dirty bits any more.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2012-10-05 23:38:51 +02:00
..
44x.c KVM: PPC: 44x: Initialize PVR 2012-10-05 23:38:47 +02:00
44x_emulate.c KVM: PPC: 440: Implement mfdcrx 2012-10-05 23:38:49 +02:00
44x_tlb.c KVM: do not release the error page 2012-08-06 16:04:58 +03:00
44x_tlb.h KVM: ppc: rename 44x MMU functions used in booke.c 2009-03-24 11:02:56 +02:00
book3s.c KVM: PPC: booke: Add watchdog emulation 2012-10-05 23:38:47 +02:00
book3s_32_mmu.c KVM: PPC: Put segment registers in shared page 2010-10-24 10:52:11 +02:00
book3s_32_mmu_host.c KVM: PPC: Book3s: PR: Add (dumb) MMU Notifier support 2012-10-05 23:38:43 +02:00
book3s_32_sr.S KVM: PPC: book3s_pr: Simplify transitions between virtual and real mode 2011-09-25 19:52:29 +03:00
book3s_64_mmu.c KVM: PPC: Interpret SDR1 as HVA in PAPR mode 2011-09-25 19:52:21 +03:00
book3s_64_mmu_host.c KVM: PPC: Book3s: PR: Add (dumb) MMU Notifier support 2012-10-05 23:38:43 +02:00
book3s_64_mmu_hv.c KVM: PPC: Book3S HV: Handle memory slot deletion and modification correctly 2012-10-05 23:38:51 +02:00
book3s_64_slb.S KVM: PPC: Book3S: PR: No isync in slbie path 2012-05-06 16:19:09 +02:00
book3s_64_vio.c kvm/book3s: Make kernel emulated H_PUT_TCE available for "PR" KVM 2012-05-06 16:19:11 +02:00
book3s_64_vio_hv.c kvm/book3s: Make kernel emulated H_PUT_TCE available for "PR" KVM 2012-05-06 16:19:11 +02:00
book3s_emulate.c KVM: PPC: Emulator: clean up SPR reads and writes 2012-05-06 16:19:13 +02:00
book3s_exports.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
book3s_hv.c KVM: PPC: Book3S HV: Handle memory slot deletion and modification correctly 2012-10-05 23:38:51 +02:00
book3s_hv_builtin.c KVM: PPC: Quieten message about allocating linear regions 2012-10-05 23:38:40 +02:00
book3s_hv_interrupts.S KVM: PPC: Work around POWER7 DABR corruption problem 2012-04-08 14:01:36 +03:00
book3s_hv_rm_mmu.c KVM: PPC: Book3S HV: Handle memory slot deletion and modification correctly 2012-10-05 23:38:51 +02:00
book3s_hv_rmhandlers.S KVM: PPC: Book3S HV: Fix incorrect branch in H_CEDE code 2012-08-16 14:14:52 +02:00
book3s_interrupts.S powerpc: Merge VCPU_GPR 2012-07-10 19:18:06 +10:00
book3s_mmu_hpte.c KVM: PPC: Book3s: PR: Add (dumb) MMU Notifier support 2012-10-05 23:38:43 +02:00
book3s_paired_singles.c powerpc/kvm: Fallout from system.h disintegration 2012-04-02 14:00:04 +10:00
book3s_pr.c KVM: PPC: Book3S HV: Handle memory slot deletion and modification correctly 2012-10-05 23:38:51 +02:00
book3s_pr_papr.c powerpc/kvm: Fix "PR" KVM implementation of H_CEDE 2012-07-11 17:36:38 +02:00
book3s_rmhandlers.S KVM: PPC: Book3S: PR: Rework irq disabling 2012-10-05 23:38:45 +02:00
book3s_segment.S powerpc: Move and fix MTMSR_EERI definition 2012-07-10 19:18:08 +10:00
booke.c KVM: PPC: Book3S HV: Handle memory slot deletion and modification correctly 2012-10-05 23:38:51 +02:00
booke.h KVM: PPC: Emulator: clean up SPR reads and writes 2012-05-06 16:19:13 +02:00
booke_emulate.c KVM: PPC: BookE: Add MCSR SPR support 2012-10-05 23:38:48 +02:00
booke_interrupts.S KVM updates for the 3.6 merge window 2012-07-24 12:01:20 -07:00
bookehv_interrupts.S powerpc/kvm/bookehv: Fix build regression 2012-07-27 11:42:32 +10:00
e500.c KVM: PPC: e500: refactor core-specific TLB code 2012-04-08 12:51:12 +03:00
e500.h KVM: PPC: E500: Remove E500_TLB_DIRTY flag 2012-10-05 23:38:48 +02:00
e500_emulate.c KVM: PPC: booke: Added DECAR support 2012-05-30 11:43:11 +02:00
e500_tlb.c KVM: PPC: E500: Remove E500_TLB_DIRTY flag 2012-10-05 23:38:48 +02:00
e500mc.c KVM: PPC: e500mc: Fix tlbilx emulation for 64-bit guests 2012-07-11 17:39:38 +02:00
emulate.c KVM: PPC: bookehv64: Add support for std/ld emulation. 2012-07-11 17:39:36 +02:00
fpu.S powerpc: Remove fpscr use from [kvm_]cvt_{fd,df} 2010-09-02 14:07:32 +10:00
Kconfig KVM: PPC: Book3s: PR: Add (dumb) MMU Notifier support 2012-10-05 23:38:43 +02:00
Makefile kvm/book3s: Make kernel emulated H_PUT_TCE available for "PR" KVM 2012-05-06 16:19:11 +02:00
powerpc.c KVM: PPC: Book3S HV: Handle memory slot deletion and modification correctly 2012-10-05 23:38:51 +02:00
timing.c KVM: PPC: fix partial application of "exit timing in ticks" 2011-07-12 13:16:28 +03:00
timing.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
trace.h KVM: PPC: Use symbols for exit trace 2012-10-05 23:38:48 +02:00