qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC 0/4] arm/arm64: KVM: Get around cache incoherency
@ 2015-05-05  9:13 Jérémy Fanguède
  2015-05-05  9:13 ` [Qemu-devel] [RFC 1/4] linux-headers update Jérémy Fanguède
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Jérémy Fanguède @ 2015-05-05  9:13 UTC (permalink / raw)
  To: qemu-devel; +Cc: Jérémy Fanguède, tech, kvmarm

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-05-05  9:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-05  9:13 [Qemu-devel] [RFC 0/4] arm/arm64: KVM: Get around cache incoherency Jérémy Fanguède
2015-05-05  9:13 ` [Qemu-devel] [RFC 1/4] linux-headers update Jérémy Fanguède
2015-05-05  9:13 ` [Qemu-devel] [RFC 2/4] target-arm/kvm: Flush data cache support Jérémy Fanguède
2015-05-05  9:13 ` [Qemu-devel] [RFC 3/4] kvm-all: Pre-run cache coherency maintenance Jérémy Fanguède
2015-05-05  9:13 ` [Qemu-devel] [RFC 4/4] exec: Flush data cache when needed Jérémy Fanguède

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).