From: andre.przywara@arm.com (Andre Przywara)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v8 00/16] kvmtool: arm: ITS emulation and GSI routing support
Date: Fri, 4 Nov 2016 17:31:47 +0000 [thread overview]
Message-ID: <20161104173203.21168-1-andre.przywara@arm.com> (raw)
Hi,
this series teaches kvmtool how to support KVM's ITS emulation. Also
(as this is somewhat related and has been co-developed) it enables GSI
routing for ARM/ARM64, which allows IRQFDs to be used, for instance
to use vhost_net. At the moment this is dependent on the guest
using the ITS emulation, but GICv2M support may be added at a later time.
The first six patches are generic fixes and refactoring to pave the
road for the rest of the patches. Most importantly patch 3/16 pulls
the GSI routing code from x86 into generic code.
The following six patches add ITS emulation support. They reserve and
register the required ITS register frame and populate a DT node with
the necessary data. Also the patches add the device ID to the
KVM_SIGNAL_MSI ioctl.
Patches 13 and 14 enable IRQ GSI routing for ARM/ARM64.
This is needed to use IRQFDs, which is a prerequisite for vhost
functionality, for instance. The code sets up the (dummy) SPI
routing table and adds the device ID to the routing entry.
The last two patches enables the guest ITS support by extending the
existing --irqchip= parameter to allow "--irqchip=gicv3-its", both
for ARM64 and ARM (kernel support for this is still pending).
These patches make use of the recently (4.8-rc) merged KVM kernel
functionality, both Eric's IRQ routing series and the ITS emulation.
It can also be found in my kvmtool git repository [1].
Compared to v7 of the series this is mostly bugfixing and updates,
also adds the 32-bit support provided by Vladimir.
Cheers,
Andre.
[1] git://linux-arm.org/kvmtool.git (branch: its/v8)
http://www.linux-arm.org/git?p=kvmtool.git;a=log;h=refs/heads/its/v8
Andre Przywara (15):
FDT: introduce global phandle allocation
arm: use new phandle allocation functions
irq: move IRQ routing into irq.c
MSI-X: update GSI routing after changed MSI-X configuration
virtio: fix endianness check for vhost support
PCI: Only allocate IRQ routing entry when available
update public Linux headers for GICv3 ITS emulation
arm: gic: allow 32-bit compilation
arm: allow creation of an MSI register frame region
arm: FDT: create MSI controller DT node
add kvm__check_vm_capability
PCI: inject PCI device ID on MSI injection
arm: setup SPI IRQ routing tables
extend GSI IRQ routing to take a device ID
arm64: enable GICv3-ITS emulation
Vladimir Murzin (1):
arm: add support for vGICv3 and vITS
Makefile | 5 +-
arm/aarch32/arm-cpu.c | 4 +-
arm/aarch32/include/asm/kvm.h | 4 +-
arm/aarch32/include/kvm/kvm-arch.h | 3 -
arm/aarch64/arm-cpu.c | 5 +-
arm/aarch64/include/asm/kvm.h | 2 +
arm/aarch64/include/kvm/kvm-arch.h | 3 -
arm/fdt.c | 8 +-
arm/gic.c | 132 ++++++++++++++++++++++++++++-
arm/include/arm-common/gic.h | 3 +-
arm/include/arm-common/kvm-arch.h | 2 +
arm/include/arm-common/kvm-config-arch.h | 2 +-
arm/include/arm-common/kvm-cpu-arch.h | 3 +-
arm/include/arm-common/pci.h | 2 +-
arm/irq.c | 9 --
arm/pci.c | 13 ++-
hw/pci-shmem.c | 5 +-
include/kvm/fdt.h | 10 +--
include/kvm/irq.h | 8 +-
include/kvm/kvm.h | 1 +
include/kvm/virtio.h | 9 +-
include/linux/kvm.h | 19 ++++-
irq.c | 138 +++++++++++++++++++++++++++++++
kvm-fdt.c | 26 ++++++
kvm.c | 28 +++++++
mips/irq.c | 10 ---
powerpc/irq.c | 31 -------
virtio/net.c | 2 +-
virtio/pci.c | 87 ++++++++++++++++---
x86/include/asm/kvm.h | 6 +-
x86/irq.c | 45 ++--------
31 files changed, 480 insertions(+), 145 deletions(-)
delete mode 100644 arm/irq.c
create mode 100644 kvm-fdt.c
delete mode 100644 mips/irq.c
delete mode 100644 powerpc/irq.c
--
2.9.0
next reply other threads:[~2016-11-04 17:31 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-04 17:31 Andre Przywara [this message]
2016-11-04 17:31 ` [PATCH v8 01/16] FDT: introduce global phandle allocation Andre Przywara
2016-12-09 11:55 ` Marc Zyngier
2016-12-19 18:43 ` Andre Przywara
2016-12-20 9:43 ` Andrew Jones
2016-12-09 12:03 ` Marc Zyngier
2016-12-19 18:43 ` Andre Przywara
2017-02-01 16:44 ` André Przywara
2017-02-01 17:13 ` Marc Zyngier
2017-02-02 16:31 ` Andre Przywara
2016-11-04 17:31 ` [PATCH v8 02/16] arm: use new phandle allocation functions Andre Przywara
2016-12-09 13:26 ` Marc Zyngier
2016-11-04 17:31 ` [PATCH v8 03/16] irq: move IRQ routing into irq.c Andre Przywara
2016-12-09 14:41 ` Marc Zyngier
2016-11-04 17:31 ` [PATCH v8 04/16] MSI-X: update GSI routing after changed MSI-X configuration Andre Przywara
2016-12-09 17:13 ` Marc Zyngier
2016-12-19 18:44 ` Andre Przywara
2016-11-04 17:31 ` [PATCH v8 05/16] virtio: fix endianness check for vhost support Andre Przywara
2016-11-04 17:31 ` [PATCH v8 06/16] PCI: Only allocate IRQ routing entry when available Andre Przywara
2016-11-04 17:31 ` [PATCH v8 07/16] update public Linux headers for GICv3 ITS emulation Andre Przywara
2016-11-04 17:31 ` [PATCH v8 08/16] arm: gic: allow 32-bit compilation Andre Przywara
2016-11-04 17:31 ` [PATCH v8 09/16] arm: allow creation of an MSI register frame region Andre Przywara
2016-11-04 17:31 ` [PATCH v8 10/16] arm: FDT: create MSI controller DT node Andre Przywara
2016-11-04 17:31 ` [PATCH v8 11/16] add kvm__check_vm_capability Andre Przywara
2016-11-04 17:31 ` [PATCH v8 12/16] PCI: inject PCI device ID on MSI injection Andre Przywara
2016-11-04 17:32 ` [PATCH v8 13/16] arm: setup SPI IRQ routing tables Andre Przywara
2016-11-04 17:32 ` [PATCH v8 14/16] extend GSI IRQ routing to take a device ID Andre Przywara
2016-11-04 17:32 ` [PATCH v8 15/16] arm64: enable GICv3-ITS emulation Andre Przywara
2016-11-04 17:32 ` [PATCH v8 16/16] arm: add support for vGICv3 and vITS Andre Przywara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161104173203.21168-1-andre.przywara@arm.com \
--to=andre.przywara@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox