linux/arch/powerpc/kvm
Paul Mackerras fd6d53b124 KVM: PPC: Book3S HV: Use decrementer to wake napping threads
This arranges for threads that are napping due to their vcpu having
ceded or due to not having a vcpu to wake up at the end of the guest's
timeslice without having to be poked with an IPI.  We do that by
arranging for the decrementer to contain a value no greater than the
number of timebase ticks remaining until the end of the timeslice.
In the case of a thread with no vcpu, this number is in the hypervisor
decrementer already.  In the case of a ceded vcpu, we use the smaller
of the HDEC value and the DEC value.

Using the DEC like this when ceded means we need to save and restore
the guest decrementer value around the nap.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2015-04-21 15:21:33 +02:00
..
book3s_32_mmu_host.c KVM: PPC: Book3S: Make magic page properly 4k mappable 2014-07-28 15:23:11 +02:00
book3s_32_mmu.c arch: powerpc: kvm: book3s_32_mmu.c: Remove unused function 2014-12-17 13:12:25 +01:00
book3s_32_sr.S
book3s_64_mmu_host.c KVM: PPC: Book3S: Make magic page properly 4k mappable 2014-07-28 15:23:11 +02:00
book3s_64_mmu_hv.c KVM: PPC: Book3S HV: Create debugfs file for each guest's HPT 2015-04-21 15:21:31 +02:00
book3s_64_mmu.c KVM: PPC: Disable NX for old magic page using guests 2014-05-30 14:26:24 +02:00
book3s_64_slb.S KVM: PPC: Book3S PR: Rework SLB switching code 2014-05-30 14:26:30 +02:00
book3s_64_vio_hv.c KVM: PPC: Book3S: Introduce hypervisor call H_GET_TCE 2014-03-26 23:34:27 +11:00
book3s_64_vio.c ppc: kvm: use anon_inode_getfd() with O_CLOEXEC flag 2013-08-26 13:19:56 +03:00
book3s_emulate.c KVM: PPC: PR: Handle FSCR feature deselects 2014-07-31 10:23:46 +02:00
book3s_exports.c KVM: PPC: Make shared struct aka magic page guest endian 2014-05-30 14:26:21 +02:00
book3s_hv_builtin.c KVM: PPC: Book3S HV: Add fast real-mode H_RANDOM implementation. 2015-04-21 15:21:29 +02:00
book3s_hv_interrupts.S powerpc/kvm: Create proper names for the kvm_host_state PMU fields 2014-12-29 15:45:55 +11:00
book3s_hv_ras.c KVM: PPC: Book3S HV: Remove code for PPC970 processors 2014-12-17 13:44:03 +01:00
book3s_hv_rm_mmu.c KVM: PPC: Book3S HV: Add helpers for lock/unlock hpte 2015-04-21 15:21:29 +02:00
book3s_hv_rm_xics.c KVM: PPC: Book3S HV: Add ICP real mode counters 2015-04-21 15:21:30 +02:00
book3s_hv_rmhandlers.S KVM: PPC: Book3S HV: Use decrementer to wake napping threads 2015-04-21 15:21:33 +02:00
book3s_hv.c KVM: PPC: Book3S HV: Get rid of vcore nap_count and n_woken 2015-04-21 15:21:32 +02:00
book3s_interrupts.S KVM: PPC: Book3S PR: Fix ABIv2 on LE 2014-07-28 15:22:15 +02:00
book3s_mmu_hpte.c kvm: powerpc: book3s: pr: move PR related tracepoints to a separate header 2013-10-17 15:36:22 +02:00
book3s_paired_singles.c arch: powerpc: kvm: book3s_paired_singles.c: Remove unused function 2014-12-17 13:13:29 +01:00
book3s_pr_papr.c kvmppc: Implement H_LOGICAL_CI_{LOAD,STORE} in KVM 2015-04-21 15:21:28 +02:00
book3s_pr.c arch: powerpc: kvm: book3s_pr.c: Remove unused function 2014-12-17 13:13:16 +01:00
book3s_rmhandlers.S KVM: PPC: Book3S PR: Fix ABIv2 on LE 2014-07-28 15:22:15 +02:00
book3s_rtas.c KVM: PPC: RTAS: Do byte swaps explicitly 2014-07-07 23:17:20 +02:00
book3s_segment.S KVM: PPC: Book3S PR: Handle Facility interrupt and FSCR 2014-05-30 14:26:22 +02:00
book3s_xics.c KVM: PPC: Book3S HV: Add ICP real mode counters 2015-04-21 15:21:30 +02:00
book3s_xics.h KVM: PPC: Book3S HV: Add ICP real mode counters 2015-04-21 15:21:30 +02:00
book3s.c kvmppc: Implement H_LOGICAL_CI_{LOAD,STORE} in KVM 2015-04-21 15:21:28 +02:00
book3s.h kvm: Fix page ageing bugs 2014-09-24 14:07:58 +02:00
booke_emulate.c KVM: PPC: BOOKE: Emulate debug registers and exception 2014-09-22 10:11:33 +02:00
booke_interrupts.S KVM: PPC: Remove 440 support 2014-07-28 15:23:15 +02:00
booke.c kvm: add halt_poll_ns module parameter 2015-02-06 13:08:37 +01:00
booke.h KVM: PPC: Book3e: Add AltiVec support 2014-09-22 10:11:32 +02:00
bookehv_interrupts.S powerpc/kvm: common sw breakpoint instr across ppc 2014-09-22 10:11:36 +02:00
e500_emulate.c KVM: PPC: Book3e: Add AltiVec support 2014-09-22 10:11:32 +02:00
e500_mmu_host.c treewide: fix typo in printk and Kconfig 2014-11-20 14:56:11 +01:00
e500_mmu_host.h
e500_mmu.c KVM: PPC: e500: Fix bad address type in deliver_tlb_misss() 2014-01-27 16:00:54 +01:00
e500.c 3.19 changes for KVM: 2014-12-18 16:05:28 -08:00
e500.h KVM: PPC: e500mc: Add support for single threaded vcpus on e6500 core 2014-09-22 10:11:35 +02:00
e500mc.c powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
emulate_loadstore.c KVM: PPC: Pass enum to kvmppc_get_last_inst 2014-09-22 10:11:36 +02:00
emulate.c KVM: PPC: Pass enum to kvmppc_get_last_inst 2014-09-22 10:11:36 +02:00
fpu.S
irq.h KVM: PPC: Book3S: Add API for in-kernel XICS emulation 2013-05-02 15:28:36 +02:00
Kconfig KVM: PPC: Book3S HV: Accumulate timing information for real-mode code 2015-04-21 15:21:31 +02:00
Makefile Here are the PPC and ARM changes for KVM, which I separated because 2014-08-07 11:35:30 -07:00
mpic.c kvm/ppc/mpic: drop unused IRQ_testbit 2015-04-08 10:46:58 +02:00
powerpc.c KVM: PPC: Book3S HV: Add fast real-mode H_RANDOM implementation. 2015-04-21 15:21:29 +02:00
timing.c KVM: PPC: Remove DCR handling 2014-07-28 19:29:15 +02:00
timing.h KVM: PPC: Remove DCR handling 2014-07-28 19:29:15 +02:00
trace_book3s.h KVM: PPC: Book3S HV: Tracepoints for KVM HV guest interactions 2014-12-17 13:29:27 +01:00
trace_booke.h KVM: PPC: BookE: Improve irq inject tracepoint 2014-12-15 13:27:23 +01:00
trace_hv.h KVM: PPC: Book3S HV: Tracepoints for KVM HV guest interactions 2014-12-17 13:29:27 +01:00
trace_pr.h KVM: PPC: Book3S HV: Tracepoints for KVM HV guest interactions 2014-12-17 13:29:27 +01:00
trace.h kvm: powerpc: booke: Move booke related tracepoints to separate header 2013-10-17 15:37:16 +02:00