aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/virtual/kvm
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/virtual/kvm')
-rw-r--r--Documentation/virtual/kvm/devices/s390_flic.txt46
1 files changed, 46 insertions, 0 deletions
diff --git a/Documentation/virtual/kvm/devices/s390_flic.txt b/Documentation/virtual/kvm/devices/s390_flic.txt
new file mode 100644
index 000000000000..410fa673e5b6
--- /dev/null
+++ b/Documentation/virtual/kvm/devices/s390_flic.txt
@@ -0,0 +1,46 @@
1FLIC (floating interrupt controller)
2====================================
3
4FLIC handles floating (non per-cpu) interrupts, i.e. I/O, service and some
5machine check interruptions. All interrupts are stored in a per-vm list of
6pending interrupts. FLIC performs operations on this list.
7
8Only one FLIC instance may be instantiated.
9
10FLIC provides support to
11- add interrupts (KVM_DEV_FLIC_ENQUEUE)
12- inspect currently pending interrupts (KVM_FLIC_GET_ALL_IRQS)
13- purge all pending floating interrupts (KVM_DEV_FLIC_CLEAR_IRQS)
14- enable/disable for the guest transparent async page faults
15
16Groups:
17 KVM_DEV_FLIC_ENQUEUE
18 Passes a buffer and length into the kernel which are then injected into
19 the list of pending interrupts.
20 attr->addr contains the pointer to the buffer and attr->attr contains
21 the length of the buffer.
22 The format of the data structure kvm_s390_irq as it is copied from userspace
23 is defined in usr/include/linux/kvm.h.
24
25 KVM_DEV_FLIC_GET_ALL_IRQS
26 Copies all floating interrupts into a buffer provided by userspace.
27 When the buffer is too small it returns -ENOMEM, which is the indication
28 for userspace to try again with a bigger buffer.
29 All interrupts remain pending, i.e. are not deleted from the list of
30 currently pending interrupts.
31 attr->addr contains the userspace address of the buffer into which all
32 interrupt data will be copied.
33 attr->attr contains the size of the buffer in bytes.
34
35 KVM_DEV_FLIC_CLEAR_IRQS
36 Simply deletes all elements from the list of currently pending floating
37 interrupts. No interrupts are injected into the guest.
38
39 KVM_DEV_FLIC_APF_ENABLE
40 Enables async page faults for the guest. So in case of a major page fault
41 the host is allowed to handle this async and continues the guest.
42
43 KVM_DEV_FLIC_APF_DISABLE_WAIT
44 Disables async page faults for the guest and waits until already pending
45 async page faults are done. This is necessary to trigger a completion interrupt
46 for every init interrupt before migrating the interrupt list.