Subject: [PATCH v2 0/5] ARM: KVM: Enable the ioeventfd capability of KVM on ARM

From: [email-masked] (Eric Auger)
Date: Thu, 15 Jan 2015 16:31:55 +0100

On 01/15/2015 04:25 PM, Nikolay Nikolaev wrote:
> 
> 
> On Mon, Jan 12, 2015 at 11:46 PM, Eric Auger <[email-masked]
> <mailto:[email-masked]>> wrote:
> 
>     Hi Nikolay,
> 
>     looks good to me overall. A rebase on Christoffer's vgic init series
> 
> is there a tree where these patches are published?
Hi Nikolay,

Yes Andre's kvm-gicv3/v7 branch on https://github.com/apritzel/linux.git
seems to contain all those.

Best Regards

Eric
> 
> regards,
> Nikolay Nikolaev 
> 
>     and
>     Andre's v6 series will help in reviewing & testing.
> 
>     Best Regards
> 
>     Eric
> 
>     On 12/07/2014 10:37 AM, Nikolay Nikolaev wrote:
>     > The IOEVENTFD KVM capability is a prerequisite for vhost support.
>     >
>     > This series enables the ioeventfd KVM capability on ARM.
>     >
>     > The implementation routes MMIO access in the IO abort handler to
>     the KVM IO bus.
>     > If there is already a registered ioeventfd handler for this
>     address, the file
>     > descriptor will be triggered.
>     >
>     > We extended the KVM IO bus API to expose the VCPU struct pointer.
>     Now the VGIC
>     > MMIO access is done through this API. For this to operate the VGIC
>     registers a
>     > kvm_io_device which represents the whole dist MMIO region.
>     >
>     > The patches are implemented on top of the latest Andre's vGICv3
>     work from here:
>     >
>     http://www.linux-arm.org/git?p=linux-ap.git;a=shortlog;h=refs/heads/kvm-gicv3/v4
>     >
>     > The code was tested on Dual Cortex-A15 Exynos5250 (ARM Chromebook).
>     > ARM64 build was verified, but not run on actual HW.
>     >
>     > Changes since v1:
>     >  - fixed x86 compilation
>     >  - GICv3/GICv3 dist base selection
>     >  - added vgic_unregister_kvm_io_dev to free the iodev resources
>     >  - enable eventfd on ARM64
>     >
>     > ---
>     >
>     > Nikolay Nikolaev (5):
>     >       KVM: Redesign kvm_io_bus_ API to pass VCPU structure to the
>     callbacks.
>     >       KVM: ARM: on IO mem abort - route the call to KVM MMIO bus
>     >       KVM: ARM VGIC add kvm_io_bus_ frontend
>     >       ARM/ARM64: enable linking against eventfd
>     >       ARM: enable KVM_CAP_IOEVENTFD
>     >
>     >
>     >  arch/arm/kvm/Kconfig       |    1
>     >  arch/arm/kvm/Makefile      |    2 -
>     >  arch/arm/kvm/arm.c         |    3 +
>     >  arch/arm/kvm/mmio.c        |   32 +++++++++++
>     >  arch/arm64/kvm/Kconfig     |    1
>     >  arch/arm64/kvm/Makefile    |    2 -
>     >  arch/ia64/kvm/kvm-ia64.c   |    4 +
>     >  arch/powerpc/kvm/mpic.c    |   10 ++-
>     >  arch/powerpc/kvm/powerpc.c |    4 +
>     >  arch/s390/kvm/diag.c       |    2 -
>     >  arch/x86/kvm/i8254.c       |   14 +++--
>     >  arch/x86/kvm/i8259.c       |   12 ++--
>     >  arch/x86/kvm/lapic.c       |    4 +
>     >  arch/x86/kvm/vmx.c         |    2 -
>     >  arch/x86/kvm/x86.c         |   13 ++---
>     >  include/kvm/arm_vgic.h     |    3 -
>     >  include/linux/kvm_host.h   |   10 ++-
>     >  virt/kvm/arm/vgic.c        |  127
>     +++++++++++++++++++++++++++++++++++++++++---
>     >  virt/kvm/coalesced_mmio.c  |    5 +-
>     >  virt/kvm/eventfd.c         |    4 +
>     >  virt/kvm/ioapic.c          |    8 +--
>     >  virt/kvm/iodev.h           |   23 +++++---
>     >  virt/kvm/kvm_main.c        |   32 ++++++-----
>     >  23 files changed, 237 insertions(+), 81 deletions(-)
>     >
>     > --
>     > Signature
>     >
> 
>