diff options
author | Eric Auger <eric.auger@linaro.org> | 2015-03-04 05:14:36 -0500 |
---|---|---|
committer | Christoffer Dall <christoffer.dall@linaro.org> | 2015-03-12 10:15:34 -0400 |
commit | 174178fed338edba66ab9580af0c5d9e1a4e5019 (patch) | |
tree | c290d6b6ae1464dd7dc72bfe63e0bb0553eac460 /Documentation | |
parent | 649cf73994e8ac69dfe3e7a35fba9acf051e7fe6 (diff) |
KVM: arm/arm64: add irqfd support
This patch enables irqfd on arm/arm64.
Both irqfd and resamplefd are supported. Injection is implemented
in vgic.c without routing.
This patch enables CONFIG_HAVE_KVM_EVENTFD and CONFIG_HAVE_KVM_IRQFD.
KVM_CAP_IRQFD is now advertised. KVM_CAP_IRQFD_RESAMPLE capability
automatically is advertised as soon as CONFIG_HAVE_KVM_IRQFD is set.
Irqfd injection is restricted to SPI. The rationale behind not
supporting PPI irqfd injection is that any device using a PPI would
be a private-to-the-CPU device (timer for instance), so its state
would have to be context-switched along with the VCPU and would
require in-kernel wiring anyhow. It is not a relevant use case for
irqfds.
Signed-off-by: Eric Auger <eric.auger@linaro.org>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/virtual/kvm/api.txt | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index b112efc816f1..b265d8e50be0 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
@@ -2234,7 +2234,7 @@ into the hash PTE second double word). | |||
2234 | 4.75 KVM_IRQFD | 2234 | 4.75 KVM_IRQFD |
2235 | 2235 | ||
2236 | Capability: KVM_CAP_IRQFD | 2236 | Capability: KVM_CAP_IRQFD |
2237 | Architectures: x86 s390 | 2237 | Architectures: x86 s390 arm arm64 |
2238 | Type: vm ioctl | 2238 | Type: vm ioctl |
2239 | Parameters: struct kvm_irqfd (in) | 2239 | Parameters: struct kvm_irqfd (in) |
2240 | Returns: 0 on success, -1 on error | 2240 | Returns: 0 on success, -1 on error |
@@ -2260,6 +2260,10 @@ Note that closing the resamplefd is not sufficient to disable the | |||
2260 | irqfd. The KVM_IRQFD_FLAG_RESAMPLE is only necessary on assignment | 2260 | irqfd. The KVM_IRQFD_FLAG_RESAMPLE is only necessary on assignment |
2261 | and need not be specified with KVM_IRQFD_FLAG_DEASSIGN. | 2261 | and need not be specified with KVM_IRQFD_FLAG_DEASSIGN. |
2262 | 2262 | ||
2263 | On ARM/ARM64, the gsi field in the kvm_irqfd struct specifies the Shared | ||
2264 | Peripheral Interrupt (SPI) index, such that the GIC interrupt ID is | ||
2265 | given by gsi + 32. | ||
2266 | |||
2263 | 4.76 KVM_PPC_ALLOCATE_HTAB | 2267 | 4.76 KVM_PPC_ALLOCATE_HTAB |
2264 | 2268 | ||
2265 | Capability: KVM_CAP_PPC_ALLOC_HTAB | 2269 | Capability: KVM_CAP_PPC_ALLOC_HTAB |