aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/virtual/kvm
diff options
context:
space:
mode:
authorCornelia Huck <cornelia.huck@de.ibm.com>2013-07-15 07:36:01 -0400
committerCornelia Huck <cornelia.huck@de.ibm.com>2014-03-21 08:43:00 -0400
commit84223598778ba08041f4297fda485df83414d57e (patch)
treebd93b83a13cc5cd1f6781bf681161fb3982548c5 /Documentation/virtual/kvm
parent841b91c584b6d1e2a2cb508bd2d0236cd37e1750 (diff)
KVM: s390: irq routing for adapter interrupts.
Introduce a new interrupt class for s390 adapter interrupts and enable irqfds for s390. This is depending on a new s390 specific vm capability, KVM_CAP_S390_IRQCHIP, that needs to be enabled by userspace. Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Diffstat (limited to 'Documentation/virtual/kvm')
-rw-r--r--Documentation/virtual/kvm/api.txt21
1 files changed, 17 insertions, 4 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt
index faf6fe9772c7..2cb1640a90ad 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -586,8 +586,8 @@ struct kvm_fpu {
586 586
5874.24 KVM_CREATE_IRQCHIP 5874.24 KVM_CREATE_IRQCHIP
588 588
589Capability: KVM_CAP_IRQCHIP 589Capability: KVM_CAP_IRQCHIP, KVM_CAP_S390_IRQCHIP (s390)
590Architectures: x86, ia64, ARM, arm64 590Architectures: x86, ia64, ARM, arm64, s390
591Type: vm ioctl 591Type: vm ioctl
592Parameters: none 592Parameters: none
593Returns: 0 on success, -1 on error 593Returns: 0 on success, -1 on error
@@ -596,7 +596,10 @@ Creates an interrupt controller model in the kernel. On x86, creates a virtual
596ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a 596ioapic, a virtual PIC (two PICs, nested), and sets up future vcpus to have a
597local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23 597local APIC. IRQ routing for GSIs 0-15 is set to both PIC and IOAPIC; GSI 16-23
598only go to the IOAPIC. On ia64, a IOSAPIC is created. On ARM/arm64, a GIC is 598only go to the IOAPIC. On ia64, a IOSAPIC is created. On ARM/arm64, a GIC is
599created. 599created. On s390, a dummy irq routing table is created.
600
601Note that on s390 the KVM_CAP_S390_IRQCHIP vm capability needs to be enabled
602before KVM_CREATE_IRQCHIP can be used.
600 603
601 604
6024.25 KVM_IRQ_LINE 6054.25 KVM_IRQ_LINE
@@ -1336,7 +1339,7 @@ KVM_ASSIGN_DEV_IRQ. Partial deassignment of host or guest IRQ is allowed.
13364.52 KVM_SET_GSI_ROUTING 13394.52 KVM_SET_GSI_ROUTING
1337 1340
1338Capability: KVM_CAP_IRQ_ROUTING 1341Capability: KVM_CAP_IRQ_ROUTING
1339Architectures: x86 ia64 1342Architectures: x86 ia64 s390
1340Type: vm ioctl 1343Type: vm ioctl
1341Parameters: struct kvm_irq_routing (in) 1344Parameters: struct kvm_irq_routing (in)
1342Returns: 0 on success, -1 on error 1345Returns: 0 on success, -1 on error
@@ -1359,6 +1362,7 @@ struct kvm_irq_routing_entry {
1359 union { 1362 union {
1360 struct kvm_irq_routing_irqchip irqchip; 1363 struct kvm_irq_routing_irqchip irqchip;
1361 struct kvm_irq_routing_msi msi; 1364 struct kvm_irq_routing_msi msi;
1365 struct kvm_irq_routing_s390_adapter adapter;
1362 __u32 pad[8]; 1366 __u32 pad[8];
1363 } u; 1367 } u;
1364}; 1368};
@@ -1366,6 +1370,7 @@ struct kvm_irq_routing_entry {
1366/* gsi routing entry types */ 1370/* gsi routing entry types */
1367#define KVM_IRQ_ROUTING_IRQCHIP 1 1371#define KVM_IRQ_ROUTING_IRQCHIP 1
1368#define KVM_IRQ_ROUTING_MSI 2 1372#define KVM_IRQ_ROUTING_MSI 2
1373#define KVM_IRQ_ROUTING_S390_ADAPTER 3
1369 1374
1370No flags are specified so far, the corresponding field must be set to zero. 1375No flags are specified so far, the corresponding field must be set to zero.
1371 1376
@@ -1381,6 +1386,14 @@ struct kvm_irq_routing_msi {
1381 __u32 pad; 1386 __u32 pad;
1382}; 1387};
1383 1388
1389struct kvm_irq_routing_s390_adapter {
1390 __u64 ind_addr;
1391 __u64 summary_addr;
1392 __u64 ind_offset;
1393 __u32 summary_offset;
1394 __u32 adapter_id;
1395};
1396
1384 1397
13854.53 KVM_ASSIGN_SET_MSIX_NR 13984.53 KVM_ASSIGN_SET_MSIX_NR
1386 1399