[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 0/4] arm/arm64: KVM: Get around cache incoherency
From: |
Jérémy Fanguède |
Subject: |
[Qemu-devel] [RFC 0/4] arm/arm64: KVM: Get around cache incoherency |
Date: |
Tue, 5 May 2015 11:13:43 +0200 |
This RFC series shows how we can solve cache incohenrency issues on
ARM/ARM64. This implementation uses an ioctl that flushes the data
cache for a given range of the guest physical memory, this possible
solution was already broached in the previous discussion [1][2].
Each access (read or write) to the guest memory that could lead to
inconsistency is flushed if needed. A light optimization is done to
minimize the ioctl call.
Currently tested with the following devices: e1000, megasas,
lsi53c895a, nec-usb-xhci, usb-ehci (with usb-host, usb-tablet, usb-kbd
and usb-mouse), which were failling with KVM and now work fine with
this patch.
The kernel needs this patch:
[RFC] ARM/ARM64: KVM: Implement KVM_FLUSH_DCACHE_GPA ioctl
[1] https://lists.cs.columbia.edu/pipermail/kvmarm/2015-February/013593.html
[2] https://lists.nongnu.org/archive/html/qemu-devel/2015-03/msg01254.html
Jérémy Fanguède (4):
linux-headers update
target-arm/kvm: Flush data cache support
kvm-all: Pre-run cache coherency maintenance
exec: Flush data cache when needed
exec.c | 19 ++++++++++++++++++
include/sysemu/kvm.h | 3 +++
kvm-all.c | 1 +
linux-headers/linux/kvm.h | 6 ++++++
stubs/kvm.c | 9 +++++++++
target-arm/kvm.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++
6 files changed, 89 insertions(+)
--
1.9.1
- [Qemu-devel] [RFC 0/4] arm/arm64: KVM: Get around cache incoherency,
Jérémy Fanguède <=