Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.16-rc5 91 lines 3.4 kB view raw
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- register and modify adapter interrupt sources (KVM_DEV_FLIC_ADAPTER_*) 16 17Groups: 18 KVM_DEV_FLIC_ENQUEUE 19 Passes a buffer and length into the kernel which are then injected into 20 the list of pending interrupts. 21 attr->addr contains the pointer to the buffer and attr->attr contains 22 the length of the buffer. 23 The format of the data structure kvm_s390_irq as it is copied from userspace 24 is defined in usr/include/linux/kvm.h. 25 26 KVM_DEV_FLIC_GET_ALL_IRQS 27 Copies all floating interrupts into a buffer provided by userspace. 28 When the buffer is too small it returns -ENOMEM, which is the indication 29 for userspace to try again with a bigger buffer. 30 All interrupts remain pending, i.e. are not deleted from the list of 31 currently pending interrupts. 32 attr->addr contains the userspace address of the buffer into which all 33 interrupt data will be copied. 34 attr->attr contains the size of the buffer in bytes. 35 36 KVM_DEV_FLIC_CLEAR_IRQS 37 Simply deletes all elements from the list of currently pending floating 38 interrupts. No interrupts are injected into the guest. 39 40 KVM_DEV_FLIC_APF_ENABLE 41 Enables async page faults for the guest. So in case of a major page fault 42 the host is allowed to handle this async and continues the guest. 43 44 KVM_DEV_FLIC_APF_DISABLE_WAIT 45 Disables async page faults for the guest and waits until already pending 46 async page faults are done. This is necessary to trigger a completion interrupt 47 for every init interrupt before migrating the interrupt list. 48 49 KVM_DEV_FLIC_ADAPTER_REGISTER 50 Register an I/O adapter interrupt source. Takes a kvm_s390_io_adapter 51 describing the adapter to register: 52 53struct kvm_s390_io_adapter { 54 __u32 id; 55 __u8 isc; 56 __u8 maskable; 57 __u8 swap; 58 __u8 pad; 59}; 60 61 id contains the unique id for the adapter, isc the I/O interruption subclass 62 to use, maskable whether this adapter may be masked (interrupts turned off) 63 and swap whether the indicators need to be byte swapped. 64 65 66 KVM_DEV_FLIC_ADAPTER_MODIFY 67 Modifies attributes of an existing I/O adapter interrupt source. Takes 68 a kvm_s390_io_adapter_req specifiying the adapter and the operation: 69 70struct kvm_s390_io_adapter_req { 71 __u32 id; 72 __u8 type; 73 __u8 mask; 74 __u16 pad0; 75 __u64 addr; 76}; 77 78 id specifies the adapter and type the operation. The supported operations 79 are: 80 81 KVM_S390_IO_ADAPTER_MASK 82 mask or unmask the adapter, as specified in mask 83 84 KVM_S390_IO_ADAPTER_MAP 85 perform a gmap translation for the guest address provided in addr, 86 pin a userspace page for the translated address and add it to the 87 list of mappings 88 89 KVM_S390_IO_ADAPTER_UNMAP 90 release a userspace page for the translated address specified in addr 91 from the list of mappings