qemu/target-ppc
Nikunj A Dadhania e3cffe6fad target-ppc: add flag in check_tlb_flush()
We flush the qemu TLB lazily. check_tlb_flush is called whenever we hit
a context synchronizing event or instruction that requires a pending
flush to be performed.

However, we fail to handle broadcast TLB flush operations. In order to
fix that efficiently, we want to differentiate whether check_tlb_flush()
needs to only apply pending local flushes (isync instructions,
interrupts, ...) or also global pending flush operations. The latter is
only needed when executing instructions that are defined architecturally
as synchronizing global TLB flush operations. This in our case is
ptesync on BookS and tlbsync on BookE along with the paravirtualized
hypervisor calls.

Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
[dwg: Changed gen_check_tlb_flush() to also take a bool, and fixed
 some spelling errors in commit message]
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2016-09-23 12:39:07 +10:00
..
translate target-ppc: add stxsi[bh]x instruction 2016-09-23 10:29:40 +10:00
arch_dump.c ppc64: fix compressed dump with pseries kernel 2016-08-10 13:05:05 +10:00
cpu-models.c target-ppc: Introduce Power9 family 2016-09-07 09:52:14 +10:00
cpu-models.h target-ppc: Introduce Power9 family 2016-09-07 09:52:14 +10:00
cpu-qom.h target-ppc: Introduce Power9 family 2016-09-07 09:52:14 +10:00
cpu.h target-ppc: add TLB_NEED_LOCAL_FLUSH flag 2016-09-23 12:39:06 +10:00
dfp_helper.c target-ppc: add dtstsfi[q] instructions 2016-09-07 12:40:11 +10:00
excp_helper.c target-ppc: add flag in check_tlb_flush() 2016-09-23 12:39:07 +10:00
fpu_helper.c ppc: Make float_check_status() pass the return address 2016-09-07 12:33:47 +10:00
gdbstub.c qemu-common: push cpu.h inclusion out of qemu-common.h 2016-05-19 16:42:29 +02:00
helper_regs.h target-ppc: add flag in check_tlb_flush() 2016-09-23 12:39:07 +10:00
helper.h target-ppc: add flag in check_tlb_flush() 2016-09-23 12:39:07 +10:00
int_helper.c target-ppc: implement darn instruction 2016-09-23 12:38:40 +10:00
kvm_ppc.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
kvm-stub.c qemu-common: push cpu.h inclusion out of qemu-common.h 2016-05-19 16:42:29 +02:00
kvm.c spapr: Introduce sPAPRCPUCoreClass 2016-09-23 12:39:06 +10:00
machine.c ppc: Use split I/D mmu modes to avoid flushes on interrupts 2016-05-30 13:20:04 +10:00
Makefile.objs kvm_ppc: remove kvmppc_timer_hack 2015-09-20 22:48:38 +02:00
mem_helper.c ppc: Speed up dcbz 2016-09-07 12:40:11 +10:00
mfrom_table_gen.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
mfrom_table.c
misc_helper.c ppc: Don't update NIP in facility unavailable interrupts 2016-09-07 12:40:10 +10:00
mmu_helper.c target-ppc: add flag in check_tlb_flush() 2016-09-23 12:39:07 +10:00
mmu-hash32.c cpu: move exec-all.h inclusion out of cpu.h 2016-05-19 16:42:29 +02:00
mmu-hash32.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
mmu-hash64.c target-ppc: add TLB_NEED_LOCAL_FLUSH flag 2016-09-23 12:39:06 +10:00
mmu-hash64.h Remove unused function declarations 2016-09-15 15:32:22 +03:00
monitor.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00
STATUS target-ppc: remove powerpc 970gx 2014-03-05 03:06:23 +01:00
timebase_helper.c ppc: Don't update NIP in DCR access routines 2016-09-07 12:40:10 +10:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
translate_init.c ppc: Don't update NIP in facility unavailable interrupts 2016-09-07 12:40:10 +10:00
translate.c target-ppc: add flag in check_tlb_flush() 2016-09-23 12:39:07 +10:00
user_only_helper.c ppc: Clean up includes 2016-01-29 15:07:22 +00:00