From: Eric Auger <eric.auger@redhat.com>
To: eric.auger.pro@gmail.com, eric.auger@redhat.com,
peter.maydell@linaro.org, qemu-arm@nongnu.org,
qemu-devel@nongnu.org, p.fedin@samsung.com
Cc: tn@semihalf.com, shlomopongratz@gmail.com,
diana.craciun@freescale.com, shannon.zhao@linaro.org,
christoffer.dall@linaro.org, drjones@redhat.com
Subject: [Qemu-devel] [PATCH v7 0/8] vITS support
Date: Fri, 23 Sep 2016 09:43:29 +0200 [thread overview]
Message-ID: <1474616617-366-1-git-send-email-eric.auger@redhat.com> (raw)
This series introduces support for in-kernel GICv3 ITS emulation.
On dt guest the functionality is complete and was tested on Cavium ThunderX
with virtio-net-pci and vhost-net.
On ACPI guest the series was tested with virtio-net-pci only. For vhost-net,
using MSIX we currently miss the ACPI IORT table generation linking the
PCIe host controller with the ITS. The work is ongoing and will be submitted
separately. Anyway the kernel ACPI IORT ITS node support is not upstreamed
yet.
The first patch is not really related to virtual ITS but advertises the KVM
GSI routing support which goes along with MSI injection.
For ACPI ITS and PCIe support, use in-flight Tomasz' series:
- [PATCH V10 0/8] Introduce ACPI world to ITS,
https://lkml.org/lkml/2016/9/6/153
- Support for ARM64 ACPI based PCI host controller,
https://lwn.net/Articles/690995/
Git Information:
v7: https://github.com/eauger/qemu/tree/v2.7.0-vITS-v7
v6: https://github.com/eauger/qemu/tree/v2.7.0-vITS-v6
History:
V6 => v7:
- add my Signed-off-by on patches 7 and 8
- add Peter's R-b on 1, 2
- add/use kvm_msi_devid_required macro
- add translater_gpa_known
- in arm_gicv3_its_kvm.c, remove the notifier and directly
compute the ITS translater GPA in first kvm_its_send_msi()
call as suggested by Peter. Fix the memory region reference
leak. fix the comment typo.
v5 => v6:
- moved from RFC to PATCH since all the host kernel dependencies now are
fixed
- use Shannon's MADT patches I was not aware of
- smoother integration since the kernet ITS init sequence has now been
updated in 4.8
- kvm_msi_use_devid flag handled in non archutecture specific code
- vmstate_its fields removed and migration_blocker added
v4 => v5:
- fix compilation issue with arm-softmmu target
- rebase on target-arm: Fix unreachable code in gicv3_class_name()
- add ACPI support
- kernel ITS init sequence is not yet similar to GICv2/V3 ones. This will
be addressed in a subsequent respin.
v3 => v4:
- Took into account Peter's comments (at the exception of sub-class
operation changes)
- rebase on Andre's kernel ITS emulation series v8
- rework KVM init sequence and KVM device creation/settings overall.
I do not use kvm_arm_register_device due to the way the kernel
API is devises (see discussion on the kernel ML)
- change the computation of the GITS_TRANSLATER base address
- fix compilation issues
- new "arget-arm: move gicv3_class_name from machine to kvm_arm.h"
v2 => v3:
- Really added unmigratable flag, was overlooked in v2
- Fixed checkpatch issue with initializing static variable to zero
v1 => v2:
- Added registers and reset method
- Added unmigratable flag
- Rebased on top of current master, use kvm_arch_fixup_msi_route() now
Eric Auger (2):
hw/intc/arm_gic(v3)_kvm: Initialize gsi routing
target-arm: move gicv3_class_name from machine to kvm_arm.h
Pavel Fedin (4):
hw/intc/arm_gicv3_its: Implement ITS base class
kvm-all: Pass requester ID to MSI routing functions
hw/intc/arm_gicv3_its: Implement support for in-kernel ITS emulation
arm/virt: Add ITS to the virt board
Shannon Zhao (2):
ACPI: Add GIC Interrupt Translation Service Structure definition
ARM: Virt: ACPI: Add GIC ITS description in ACPI MADT table
hw/arm/virt-acpi-build.c | 12 +++
hw/arm/virt.c | 47 +++++++++--
hw/intc/Makefile.objs | 2 +
hw/intc/arm_gic_kvm.c | 12 +++
hw/intc/arm_gicv3_its_common.c | 148 +++++++++++++++++++++++++++++++++
hw/intc/arm_gicv3_its_kvm.c | 121 +++++++++++++++++++++++++++
hw/intc/arm_gicv3_kvm.c | 13 +++
include/hw/acpi/acpi-defs.h | 13 ++-
include/hw/intc/arm_gicv3_its_common.h | 78 +++++++++++++++++
include/sysemu/kvm.h | 9 ++
kvm-all.c | 9 ++
kvm-stub.c | 1 +
target-arm/kvm_arm.h | 35 +++++++-
target-arm/machine.c | 15 ----
14 files changed, 492 insertions(+), 23 deletions(-)
create mode 100644 hw/intc/arm_gicv3_its_common.c
create mode 100644 hw/intc/arm_gicv3_its_kvm.c
create mode 100644 include/hw/intc/arm_gicv3_its_common.h
--
2.5.5
next reply other threads:[~2016-09-23 7:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-09-23 7:43 Eric Auger [this message]
2016-09-23 7:43 ` [Qemu-devel] [PATCH v7 1/8] hw/intc/arm_gic(v3)_kvm: Initialize gsi routing Eric Auger
2016-09-23 7:43 ` [Qemu-devel] [PATCH v7 2/8] hw/intc/arm_gicv3_its: Implement ITS base class Eric Auger
2016-09-23 7:43 ` [Qemu-devel] [PATCH v7 3/8] target-arm: move gicv3_class_name from machine to kvm_arm.h Eric Auger
2016-09-23 7:43 ` [Qemu-devel] [PATCH v7 4/8] kvm-all: Pass requester ID to MSI routing functions Eric Auger
2016-09-30 0:34 ` Peter Maydell
2016-09-23 7:43 ` [Qemu-devel] [PATCH v7 5/8] hw/intc/arm_gicv3_its: Implement support for in-kernel ITS emulation Eric Auger
2016-09-30 0:38 ` Peter Maydell
2016-09-30 0:38 ` Peter Maydell
2016-09-23 7:43 ` [Qemu-devel] [PATCH v7 6/8] arm/virt: Add ITS to the virt board Eric Auger
2016-09-23 7:43 ` [Qemu-devel] [PATCH v7 7/8] ACPI: Add GIC Interrupt Translation Service Structure definition Eric Auger
2016-09-23 7:43 ` [Qemu-devel] [PATCH v7 8/8] ARM: Virt: ACPI: Add GIC ITS description in ACPI MADT table Eric Auger
2016-09-30 0:39 ` [Qemu-devel] [PATCH v7 0/8] vITS support Peter Maydell
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=1474616617-366-1-git-send-email-eric.auger@redhat.com \
--to=eric.auger@redhat.com \
--cc=christoffer.dall@linaro.org \
--cc=diana.craciun@freescale.com \
--cc=drjones@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=p.fedin@samsung.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shannon.zhao@linaro.org \
--cc=shlomopongratz@gmail.com \
--cc=tn@semihalf.com \
/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;
as well as URLs for NNTP newsgroup(s).