qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]