qemu-patch-raspberry4/target-ppc
David Gibson 0f5cb2989f pseries: Use Book3S-HV TCE acceleration capabilities
The pseries machine of qemu implements the TCE mechanism used as a
virtual IOMMU for the PAPR defined virtual IO devices.  Because the
PAPR spec only defines a small DMA address space, the guest VIO
drivers need to update TCE mappings very frequently - the virtual
network device is particularly bad.  This means many slow exits to
qemu to emulate the H_PUT_TCE hypercall.

Sufficiently recent kernels allow this to be mitigated by implementing
H_PUT_TCE in the host kernel.  To make use of this, however, qemu
needs to initialize the necessary TCE tables, and map them into itself
so that the VIO device implementations can retrieve the mappings when
they access guest memory (which is treated as a virtual DMA
operation).

This patch adds the necessary calls to use the KVM TCE acceleration.
If the kernel does not support acceleration, or there is some other
error creating the accelerated TCE table, then it will still fall back
to full userspace TCE implementation.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Alexander Graf <agraf@suse.de>
2011-10-30 17:11:53 +01:00
..
cpu.h PPC: booke timers 2011-10-06 09:48:09 +02:00
helper.c pseries: Support SMT systems for KVM Book3S-HV 2011-10-30 17:11:53 +01:00
helper.h target-ppc: remove old CONFIG_SOFTFLOAT #ifdef 2011-06-03 16:07:48 +02:00
helper_regs.h Replace always_inline with inline 2009-08-16 09:06:54 +00:00
kvm.c pseries: Use Book3S-HV TCE acceleration capabilities 2011-10-30 17:11:53 +01:00
kvm_ppc.c PPC: KVM: Remove kvmppc_read_host_property 2011-10-06 09:43:35 +02:00
kvm_ppc.h pseries: Use Book3S-HV TCE acceleration capabilities 2011-10-30 17:11:53 +01:00
machine.c PPC: move TLBs to their own arrays 2011-06-17 02:58:37 +02:00
mfrom_table.c find -type f | xargs sed -i 's/[\t ]$//g' # on most files 2007-09-16 21:08:06 +00:00
mfrom_table_gen.c find -type f | xargs sed -i 's/[\t ]*$//g' # Yes, again. Note the star in the regex. 2007-09-17 08:09:54 +00:00
op_helper.c softmmu_header: pass CPUState to tlb_fill 2011-10-01 09:31:26 +00:00
STATUS Fix typos in comments (chek -> check) 2011-05-22 22:31:45 +01:00
translate.c Implement POWER7's CFAR in TCG 2011-10-06 09:48:04 +02:00
translate_init.c PPC: booke timers 2011-10-06 09:48:09 +02:00