linux/arch/powerpc/kvm
Paul Mackerras 075295dd32 KVM: PPC: Make the H_ENTER hcall more reliable
At present, our implementation of H_ENTER only makes one try at locking
each slot that it looks at, and doesn't even retry the ldarx/stdcx.
atomic update sequence that it uses to attempt to lock the slot.  Thus
it can return the H_PTEG_FULL error unnecessarily, particularly when
the H_EXACT flag is set, meaning that the caller wants a specific PTEG
slot.

This improves the situation by making a second pass when no free HPTE
slot is found, where we spin until we succeed in locking each slot in
turn and then check whether it is full while we hold the lock.  If the
second pass fails, then we return H_PTEG_FULL.

This also moves lock_hpte to a header file (since later commits in this
series will need to use it from other source files) and renames it to
try_lock_hpte, which is a somewhat less misleading name.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Avi Kivity <avi@redhat.com>
2012-03-05 14:52:36 +02:00
..
44x_emulate.c KVM: PPC: fix exit accounting for SPRs, tlbwe, tlbsx 2011-05-22 08:47:47 -04:00
44x_tlb.c KVM: PPC: e500: Add shadow PID support 2011-07-12 13:16:39 +03:00
44x_tlb.h
44x.c powerpc: include export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:30:38 -04:00
book3s_32_mmu_host.c KVM: PPC: Use get/set for to_svcpu to help preemption 2012-03-05 14:52:30 +02:00
book3s_32_mmu.c KVM: PPC: Put segment registers in shared page 2010-10-24 10:52:11 +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_host.c KVM: PPC: Use get/set for to_svcpu to help preemption 2012-03-05 14:52:30 +02:00
book3s_64_mmu_hv.c KVM: PPC: Add an interface for pinning guest pages in Book3s HV guests 2012-03-05 14:52:36 +02:00
book3s_64_mmu.c KVM: PPC: Interpret SDR1 as HVA in PAPR mode 2011-09-25 19:52:21 +03:00
book3s_64_slb.S KVM: PPC: book3s_pr: Simplify transitions between virtual and real mode 2011-09-25 19:52:29 +03:00
book3s_64_vio_hv.c KVM: PPC: Accelerate H_PUT_TCE by implementing it in real mode 2011-07-12 13:16:56 +03:00
book3s_emulate.c KVM: PPC: Use get/set for to_svcpu to help preemption 2012-03-05 14:52:30 +02:00
book3s_exports.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
book3s_hv_builtin.c KVM: PPC: annotate kvm_rma_init as __init 2011-12-27 11:26:40 +02:00
book3s_hv_interrupts.S KVM: PPC: book3s_hv: Add support for PPC970-family processors 2011-07-12 13:16:59 +03:00
book3s_hv_rm_mmu.c KVM: PPC: Make the H_ENTER hcall more reliable 2012-03-05 14:52:36 +02:00
book3s_hv_rmhandlers.S powerpc: Provide a way for KVM to indicate that NV GPR values are lost 2011-12-08 14:22:53 +11:00
book3s_hv.c KVM: PPC: Add an interface for pinning guest pages in Book3s HV guests 2012-03-05 14:52:36 +02:00
book3s_interrupts.S KVM: PPC: book3s_pr: Simplify transitions between virtual and real mode 2011-09-25 19:52:29 +03:00
book3s_mmu_hpte.c KVM: PPC: Move fields between struct kvm_vcpu_arch and kvmppc_vcpu_book3s 2011-07-12 13:16:46 +03:00
book3s_paired_singles.c Merge branch 'kvm-updates/2.6.37' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2010-10-24 12:47:25 -07:00
book3s_pr_papr.c KVM: PPC: Add PAPR hypercall code for PR mode 2011-09-25 19:52:24 +03:00
book3s_pr.c KVM: PPC: Book3S: PR: Fix signal check race 2012-03-05 14:52:30 +02:00
book3s_rmhandlers.S KVM: PPC: book3s_pr: Simplify transitions between virtual and real mode 2011-09-25 19:52:29 +03:00
book3s_segment.S KVM: PPC: book3s_pr: Simplify transitions between virtual and real mode 2011-09-25 19:52:29 +03:00
book3s.c KVM: PPC: booke: Improve timer register emulation 2012-03-05 14:52:27 +02:00
booke_emulate.c KVM: PPC: booke: Improve timer register emulation 2012-03-05 14:52:27 +02:00
booke_interrupts.S KVM: PPC: Paravirtualize SPRG4-7, ESR, PIR, MASn 2012-03-05 14:52:26 +02:00
booke.c KVM: PPC: booke: Improve timer register emulation 2012-03-05 14:52:27 +02:00
booke.h KVM: PPC: booke: Improve timer register emulation 2012-03-05 14:52:27 +02:00
e500_emulate.c KVM: PPC: Paravirtualize SPRG4-7, ESR, PIR, MASn 2012-03-05 14:52:26 +02:00
e500_tlb.c KVM: PPC: e500: use hardware hint when loading TLB0 entries 2012-03-05 14:52:34 +02:00
e500_tlb.h KVM: PPC: Paravirtualize SPRG4-7, ESR, PIR, MASn 2012-03-05 14:52:26 +02:00
e500.c KVM: PPC: Paravirtualize SPRG4-7, ESR, PIR, MASn 2012-03-05 14:52:26 +02:00
emulate.c KVM: PPC: booke: Improve timer register emulation 2012-03-05 14:52:27 +02:00
fpu.S powerpc: Remove fpscr use from [kvm_]cvt_{fd,df} 2010-09-02 14:07:32 +10:00
Kconfig Merge branch 'kvm-updates/3.1' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2011-07-24 09:07:03 -07:00
Makefile KVM: PPC: Assemble book3s{,_hv}_rmhandlers.S separately 2011-09-25 19:52:28 +03:00
powerpc.c KVM: PPC: Make wakeups work again for Book3S HV guests 2012-03-05 14:52:34 +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: powerpc: Fix BUILD_BUG_ON condition 2009-12-03 09:32:22 +02:00
trace.h KVM: PPC: Use get/set for to_svcpu to help preemption 2012-03-05 14:52:30 +02:00