€•ŒŒsphinx.addnodes”Œdocument”“”)”}”(Œ rawsource”Œ”Œchildren”]”(Œ translations”Œ LanguagesNode”“”)”}”(hhh]”(hŒ pending_xref”“”)”}”(hhh]”Œdocutils.nodes”ŒText”“”ŒChinese (Simplified)”…””}”Œparent”hsbaŒ attributes”}”(Œids”]”Œclasses”]”Œnames”]”Œdupnames”]”Œbackrefs”]”Œ refdomain”Œstd”Œreftype”Œdoc”Œ reftarget”Œ./translations/zh_CN/virt/kvm/devices/s390_flic”Œmodname”NŒ classname”NŒ refexplicit”ˆuŒtagname”hhh ubh)”}”(hhh]”hŒChinese (Traditional)”…””}”hh2sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/zh_TW/virt/kvm/devices/s390_flic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒItalian”…””}”hhFsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/it_IT/virt/kvm/devices/s390_flic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒJapanese”…””}”hhZsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/ja_JP/virt/kvm/devices/s390_flic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒKorean”…””}”hhnsbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/ko_KR/virt/kvm/devices/s390_flic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒPortuguese (Brazilian)”…””}”hh‚sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/pt_BR/virt/kvm/devices/s390_flic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubh)”}”(hhh]”hŒSpanish”…””}”hh–sbah}”(h]”h ]”h"]”h$]”h&]”Œ refdomain”h)Œreftype”h+Œ reftarget”Œ./translations/sp_SP/virt/kvm/devices/s390_flic”Œmodname”NŒ classname”NŒ refexplicit”ˆuh1hhh ubeh}”(h]”h ]”h"]”h$]”h&]”Œcurrent_language”ŒEnglish”uh1h hhŒ _document”hŒsource”NŒline”NubhŒcomment”“”)”}”(hŒ SPDX-License-Identifier: GPL-2.0”h]”hŒ SPDX-License-Identifier: GPL-2.0”…””}”hh·sbah}”(h]”h ]”h"]”h$]”h&]”Œ xml:space”Œpreserve”uh1hµhhh²hh³ŒH/var/lib/git/docbuild/linux/Documentation/virt/kvm/devices/s390_flic.rst”h´KubhŒsection”“”)”}”(hhh]”(hŒtitle”“”)”}”(hŒ$FLIC (floating interrupt controller)”h]”hŒ$FLIC (floating interrupt controller)”…””}”(hhÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÍhhÊh²hh³hÇh´KubhŒ paragraph”“”)”}”(hŒÐFLIC handles floating (non per-cpu) interrupts, i.e. I/O, service and some machine check interruptions. All interrupts are stored in a per-vm list of pending interrupts. FLIC performs operations on this list.”h]”hŒÐFLIC handles floating (non per-cpu) interrupts, i.e. I/O, service and some machine check interruptions. All interrupts are stored in a per-vm list of pending interrupts. FLIC performs operations on this list.”…””}”(hhßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KhhÊh²hubhÞ)”}”(hŒ+Only one FLIC instance may be instantiated.”h]”hŒ+Only one FLIC instance may be instantiated.”…””}”(hhíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhÊh²hubhÞ)”}”(hXaFLIC provides support to - add interrupts (KVM_DEV_FLIC_ENQUEUE) - inspect currently pending interrupts (KVM_FLIC_GET_ALL_IRQS) - purge all pending floating interrupts (KVM_DEV_FLIC_CLEAR_IRQS) - purge one pending floating I/O interrupt (KVM_DEV_FLIC_CLEAR_IO_IRQ) - enable/disable for the guest transparent async page faults - register and modify adapter interrupt sources (KVM_DEV_FLIC_ADAPTER_*) - modify AIS (adapter-interruption-suppression) mode state (KVM_DEV_FLIC_AISM) - inject adapter interrupts on a specified adapter (KVM_DEV_FLIC_AIRQ_INJECT) - get/set all AIS mode states (KVM_DEV_FLIC_AISM_ALL)”h]”hXaFLIC provides support to - add interrupts (KVM_DEV_FLIC_ENQUEUE) - inspect currently pending interrupts (KVM_FLIC_GET_ALL_IRQS) - purge all pending floating interrupts (KVM_DEV_FLIC_CLEAR_IRQS) - purge one pending floating I/O interrupt (KVM_DEV_FLIC_CLEAR_IO_IRQ) - enable/disable for the guest transparent async page faults - register and modify adapter interrupt sources (KVM_DEV_FLIC_ADAPTER_*) - modify AIS (adapter-interruption-suppression) mode state (KVM_DEV_FLIC_AISM) - inject adapter interrupts on a specified adapter (KVM_DEV_FLIC_AIRQ_INJECT) - get/set all AIS mode states (KVM_DEV_FLIC_AISM_ALL)”…””}”(hhûh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K hhÊh²hubhŒdefinition_list”“”)”}”(hhh]”hŒdefinition_list_item”“”)”}”(hX[Groups: KVM_DEV_FLIC_ENQUEUE Passes a buffer and length into the kernel which are then injected into the list of pending interrupts. attr->addr contains the pointer to the buffer and attr->attr contains the length of the buffer. The format of the data structure kvm_s390_irq as it is copied from userspace is defined in usr/include/linux/kvm.h. KVM_DEV_FLIC_GET_ALL_IRQS Copies all floating interrupts into a buffer provided by userspace. When the buffer is too small it returns -ENOMEM, which is the indication for userspace to try again with a bigger buffer. -ENOBUFS is returned when the allocation of a kernelspace buffer has failed. -EFAULT is returned when copying data to userspace failed. All interrupts remain pending, i.e. are not deleted from the list of currently pending interrupts. attr->addr contains the userspace address of the buffer into which all interrupt data will be copied. attr->attr contains the size of the buffer in bytes. KVM_DEV_FLIC_CLEAR_IRQS Simply deletes all elements from the list of currently pending floating interrupts. No interrupts are injected into the guest. KVM_DEV_FLIC_CLEAR_IO_IRQ Deletes one (if any) I/O interrupt for a subchannel identified by the subsystem identification word passed via the buffer specified by attr->addr (address) and attr->attr (length). KVM_DEV_FLIC_APF_ENABLE Enables async page faults for the guest. So in case of a major page fault the host is allowed to handle this async and continues the guest. -EINVAL is returned when called on the FLIC of a ucontrol VM. KVM_DEV_FLIC_APF_DISABLE_WAIT Disables async page faults for the guest and waits until already pending async page faults are done. This is necessary to trigger a completion interrupt for every init interrupt before migrating the interrupt list. -EINVAL is returned when called on the FLIC of a ucontrol VM. KVM_DEV_FLIC_ADAPTER_REGISTER Register an I/O adapter interrupt source. Takes a kvm_s390_io_adapter describing the adapter to register:: struct kvm_s390_io_adapter { __u32 id; __u8 isc; __u8 maskable; __u8 swap; __u8 flags; }; id contains the unique id for the adapter, isc the I/O interruption subclass to use, maskable whether this adapter may be masked (interrupts turned off), swap whether the indicators need to be byte swapped, and flags contains further characteristics of the adapter. Currently defined values for 'flags' are: - KVM_S390_ADAPTER_SUPPRESSIBLE: adapter is subject to AIS (adapter-interrupt-suppression) facility. This flag only has an effect if the AIS capability is enabled. Unknown flag values are ignored. KVM_DEV_FLIC_ADAPTER_MODIFY Modifies attributes of an existing I/O adapter interrupt source. Takes a kvm_s390_io_adapter_req specifying the adapter and the operation:: struct kvm_s390_io_adapter_req { __u32 id; __u8 type; __u8 mask; __u16 pad0; __u64 addr; }; id specifies the adapter and type the operation. The supported operations are: KVM_S390_IO_ADAPTER_MASK mask or unmask the adapter, as specified in mask KVM_S390_IO_ADAPTER_MAP This is now a no-op. The mapping is purely done by the irq route. KVM_S390_IO_ADAPTER_UNMAP This is now a no-op. The mapping is purely done by the irq route. KVM_DEV_FLIC_AISM modify the adapter-interruption-suppression mode for a given isc if the AIS capability is enabled. Takes a kvm_s390_ais_req describing:: struct kvm_s390_ais_req { __u8 isc; __u16 mode; }; isc contains the target I/O interruption subclass, mode the target adapter-interruption-suppression mode. The following modes are currently supported: - KVM_S390_AIS_MODE_ALL: ALL-Interruptions Mode, i.e. airq injection is always allowed; - KVM_S390_AIS_MODE_SINGLE: SINGLE-Interruption Mode, i.e. airq injection is only allowed once and the following adapter interrupts will be suppressed until the mode is set again to ALL-Interruptions or SINGLE-Interruption mode. KVM_DEV_FLIC_AIRQ_INJECT Inject adapter interrupts on a specified adapter. attr->attr contains the unique id for the adapter, which allows for adapter-specific checks and actions. For adapters subject to AIS, handle the airq injection suppression for an isc according to the adapter-interruption-suppression mode on condition that the AIS capability is enabled. KVM_DEV_FLIC_AISM_ALL Gets or sets the adapter-interruption-suppression mode for all ISCs. Takes a kvm_s390_ais_all describing:: struct kvm_s390_ais_all { __u8 simm; /* Single-Interruption-Mode mask */ __u8 nimm; /* No-Interruption-Mode mask * }; simm contains Single-Interruption-Mode mask for all ISCs, nimm contains No-Interruption-Mode mask for all ISCs. Each bit in simm and nimm corresponds to an ISC (MSB0 bit 0 to ISC 0 and so on). The combination of simm bit and nimm bit presents AIS mode for a ISC. KVM_DEV_FLIC_AISM_ALL is indicated by KVM_CAP_S390_AIS_MIGRATION. ”h]”(hŒterm”“”)”}”(hŒGroups:”h]”hŒGroups:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K¡hjubhŒ definition”“”)”}”(hhh]”j )”}”(hhh]”(j)”}”(hXQKVM_DEV_FLIC_ENQUEUE Passes a buffer and length into the kernel which are then injected into the list of pending interrupts. attr->addr contains the pointer to the buffer and attr->attr contains the length of the buffer. The format of the data structure kvm_s390_irq as it is copied from userspace is defined in usr/include/linux/kvm.h. ”h]”(j)”}”(hŒKVM_DEV_FLIC_ENQUEUE”h]”hŒKVM_DEV_FLIC_ENQUEUE”…””}”(hj0h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Khj,ubj%)”}”(hhh]”hÞ)”}”(hX;Passes a buffer and length into the kernel which are then injected into the list of pending interrupts. attr->addr contains the pointer to the buffer and attr->attr contains the length of the buffer. The format of the data structure kvm_s390_irq as it is copied from userspace is defined in usr/include/linux/kvm.h.”h]”hX;Passes a buffer and length into the kernel which are then injected into the list of pending interrupts. attr->addr contains the pointer to the buffer and attr->attr contains the length of the buffer. The format of the data structure kvm_s390_irq as it is copied from userspace is defined in usr/include/linux/kvm.h.”…””}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Khj>ubah}”(h]”h ]”h"]”h$]”h&]”uh1j$hj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Khj)ubj)”}”(hX`KVM_DEV_FLIC_GET_ALL_IRQS Copies all floating interrupts into a buffer provided by userspace. When the buffer is too small it returns -ENOMEM, which is the indication for userspace to try again with a bigger buffer. -ENOBUFS is returned when the allocation of a kernelspace buffer has failed. -EFAULT is returned when copying data to userspace failed. All interrupts remain pending, i.e. are not deleted from the list of currently pending interrupts. attr->addr contains the userspace address of the buffer into which all interrupt data will be copied. attr->attr contains the size of the buffer in bytes. ”h]”(j)”}”(hŒKVM_DEV_FLIC_GET_ALL_IRQS”h]”hŒKVM_DEV_FLIC_GET_ALL_IRQS”…””}”(hj_h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K.hj[ubj%)”}”(hhh]”(hÞ)”}”(hŒ½Copies all floating interrupts into a buffer provided by userspace. When the buffer is too small it returns -ENOMEM, which is the indication for userspace to try again with a bigger buffer.”h]”hŒ½Copies all floating interrupts into a buffer provided by userspace. When the buffer is too small it returns -ENOMEM, which is the indication for userspace to try again with a bigger buffer.”…””}”(hjph²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K"hjmubhÞ)”}”(hŒL-ENOBUFS is returned when the allocation of a kernelspace buffer has failed.”h]”hŒL-ENOBUFS is returned when the allocation of a kernelspace buffer has failed.”…””}”(hj~h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K&hjmubhÞ)”}”(hX8-EFAULT is returned when copying data to userspace failed. All interrupts remain pending, i.e. are not deleted from the list of currently pending interrupts. attr->addr contains the userspace address of the buffer into which all interrupt data will be copied. attr->attr contains the size of the buffer in bytes.”h]”hX8-EFAULT is returned when copying data to userspace failed. All interrupts remain pending, i.e. are not deleted from the list of currently pending interrupts. attr->addr contains the userspace address of the buffer into which all interrupt data will be copied. attr->attr contains the size of the buffer in bytes.”…””}”(hjŒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K)hjmubeh}”(h]”h ]”h"]”h$]”h&]”uh1j$hj[ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K.hj)ubj)”}”(hŒ˜KVM_DEV_FLIC_CLEAR_IRQS Simply deletes all elements from the list of currently pending floating interrupts. No interrupts are injected into the guest. ”h]”(j)”}”(hŒKVM_DEV_FLIC_CLEAR_IRQS”h]”hŒKVM_DEV_FLIC_CLEAR_IRQS”…””}”(hjªh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K2hj¦ubj%)”}”(hhh]”hÞ)”}”(hŒSimply deletes all elements from the list of currently pending floating interrupts. No interrupts are injected into the guest.”h]”hŒSimply deletes all elements from the list of currently pending floating interrupts. No interrupts are injected into the guest.”…””}”(hj»h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K1hj¸ubah}”(h]”h ]”h"]”h$]”h&]”uh1j$hj¦ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K2hj)ubj)”}”(hŒÏKVM_DEV_FLIC_CLEAR_IO_IRQ Deletes one (if any) I/O interrupt for a subchannel identified by the subsystem identification word passed via the buffer specified by attr->addr (address) and attr->attr (length). ”h]”(j)”}”(hŒKVM_DEV_FLIC_CLEAR_IO_IRQ”h]”hŒKVM_DEV_FLIC_CLEAR_IO_IRQ”…””}”(hjÙh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K7hjÕubj%)”}”(hhh]”hÞ)”}”(hŒ´Deletes one (if any) I/O interrupt for a subchannel identified by the subsystem identification word passed via the buffer specified by attr->addr (address) and attr->attr (length).”h]”hŒ´Deletes one (if any) I/O interrupt for a subchannel identified by the subsystem identification word passed via the buffer specified by attr->addr (address) and attr->attr (length).”…””}”(hjêh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K5hjçubah}”(h]”h ]”h"]”h$]”h&]”uh1j$hjÕubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K7hj)ubj)”}”(hŒãKVM_DEV_FLIC_APF_ENABLE Enables async page faults for the guest. So in case of a major page fault the host is allowed to handle this async and continues the guest. -EINVAL is returned when called on the FLIC of a ucontrol VM. ”h]”(j)”}”(hŒKVM_DEV_FLIC_APF_ENABLE”h]”hŒKVM_DEV_FLIC_APF_ENABLE”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K=hjubj%)”}”(hhh]”(hÞ)”}”(hŒ‹Enables async page faults for the guest. So in case of a major page fault the host is allowed to handle this async and continues the guest.”h]”hŒ‹Enables async page faults for the guest. So in case of a major page fault the host is allowed to handle this async and continues the guest.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K:hjubhÞ)”}”(hŒ=-EINVAL is returned when called on the FLIC of a ucontrol VM.”h]”hŒ=-EINVAL is returned when called on the FLIC of a ucontrol VM.”…””}”(hj'h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K=hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j$hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K=hj)ubj)”}”(hX4KVM_DEV_FLIC_APF_DISABLE_WAIT Disables async page faults for the guest and waits until already pending async page faults are done. This is necessary to trigger a completion interrupt for every init interrupt before migrating the interrupt list. -EINVAL is returned when called on the FLIC of a ucontrol VM. ”h]”(j)”}”(hŒKVM_DEV_FLIC_APF_DISABLE_WAIT”h]”hŒKVM_DEV_FLIC_APF_DISABLE_WAIT”…””}”(hjEh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KDhjAubj%)”}”(hhh]”(hÞ)”}”(hŒÖDisables async page faults for the guest and waits until already pending async page faults are done. This is necessary to trigger a completion interrupt for every init interrupt before migrating the interrupt list.”h]”hŒÖDisables async page faults for the guest and waits until already pending async page faults are done. This is necessary to trigger a completion interrupt for every init interrupt before migrating the interrupt list.”…””}”(hjVh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K@hjSubhÞ)”}”(hŒ=-EINVAL is returned when called on the FLIC of a ucontrol VM.”h]”hŒ=-EINVAL is returned when called on the FLIC of a ucontrol VM.”…””}”(hjdh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KDhjSubeh}”(h]”h ]”h"]”h$]”h&]”uh1j$hjAubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KDhj)ubj)”}”(hX3KVM_DEV_FLIC_ADAPTER_REGISTER Register an I/O adapter interrupt source. Takes a kvm_s390_io_adapter describing the adapter to register:: struct kvm_s390_io_adapter { __u32 id; __u8 isc; __u8 maskable; __u8 swap; __u8 flags; }; id contains the unique id for the adapter, isc the I/O interruption subclass to use, maskable whether this adapter may be masked (interrupts turned off), swap whether the indicators need to be byte swapped, and flags contains further characteristics of the adapter. Currently defined values for 'flags' are: - KVM_S390_ADAPTER_SUPPRESSIBLE: adapter is subject to AIS (adapter-interrupt-suppression) facility. This flag only has an effect if the AIS capability is enabled. Unknown flag values are ignored. ”h]”(j)”}”(hŒKVM_DEV_FLIC_ADAPTER_REGISTER”h]”hŒKVM_DEV_FLIC_ADAPTER_REGISTER”…””}”(hj‚h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K^hj~ubj%)”}”(hhh]”(hŒ block_quote”“”)”}”(hX Register an I/O adapter interrupt source. Takes a kvm_s390_io_adapter describing the adapter to register:: struct kvm_s390_io_adapter { __u32 id; __u8 isc; __u8 maskable; __u8 swap; __u8 flags; }; ”h]”(hÞ)”}”(hŒjRegister an I/O adapter interrupt source. Takes a kvm_s390_io_adapter describing the adapter to register::”h]”hŒiRegister an I/O adapter interrupt source. Takes a kvm_s390_io_adapter describing the adapter to register:”…””}”(hj™h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KGhj•ubhŒ literal_block”“”)”}”(hŒstruct kvm_s390_io_adapter { __u32 id; __u8 isc; __u8 maskable; __u8 swap; __u8 flags; };”h]”hŒstruct kvm_s390_io_adapter { __u32 id; __u8 isc; __u8 maskable; __u8 swap; __u8 flags; };”…””}”hj©sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§h³hÇh´KJhj•ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j“h³hÇh´KGhjubhÞ)”}”(hX id contains the unique id for the adapter, isc the I/O interruption subclass to use, maskable whether this adapter may be masked (interrupts turned off), swap whether the indicators need to be byte swapped, and flags contains further characteristics of the adapter.”h]”hX id contains the unique id for the adapter, isc the I/O interruption subclass to use, maskable whether this adapter may be masked (interrupts turned off), swap whether the indicators need to be byte swapped, and flags contains further characteristics of the adapter.”…””}”(hj½h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KRhjubhÞ)”}”(hŒ)Currently defined values for 'flags' are:”h]”hŒ-Currently defined values for ‘flags’ are:”…””}”(hjËh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KWhjubhŒ bullet_list”“”)”}”(hhh]”hŒ list_item”“”)”}”(hŒ¢KVM_S390_ADAPTER_SUPPRESSIBLE: adapter is subject to AIS (adapter-interrupt-suppression) facility. This flag only has an effect if the AIS capability is enabled. ”h]”hÞ)”}”(hŒ¡KVM_S390_ADAPTER_SUPPRESSIBLE: adapter is subject to AIS (adapter-interrupt-suppression) facility. This flag only has an effect if the AIS capability is enabled.”h]”hŒ¡KVM_S390_ADAPTER_SUPPRESSIBLE: adapter is subject to AIS (adapter-interrupt-suppression) facility. This flag only has an effect if the AIS capability is enabled.”…””}”(hjäh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KYhjàubah}”(h]”h ]”h"]”h$]”h&]”uh1jÞhjÛubah}”(h]”h ]”h"]”h$]”h&]”Œbullet”Œ-”uh1jÙh³hÇh´KYhjubhÞ)”}”(hŒ Unknown flag values are ignored.”h]”hŒ Unknown flag values are ignored.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K]hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1j$hj~ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K^hj)ubj)”}”(hX¡KVM_DEV_FLIC_ADAPTER_MODIFY Modifies attributes of an existing I/O adapter interrupt source. Takes a kvm_s390_io_adapter_req specifying the adapter and the operation:: struct kvm_s390_io_adapter_req { __u32 id; __u8 type; __u8 mask; __u16 pad0; __u64 addr; }; id specifies the adapter and type the operation. The supported operations are: KVM_S390_IO_ADAPTER_MASK mask or unmask the adapter, as specified in mask KVM_S390_IO_ADAPTER_MAP This is now a no-op. The mapping is purely done by the irq route. KVM_S390_IO_ADAPTER_UNMAP This is now a no-op. The mapping is purely done by the irq route. ”h]”(j)”}”(hŒKVM_DEV_FLIC_ADAPTER_MODIFY”h]”hŒKVM_DEV_FLIC_ADAPTER_MODIFY”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kuhjubj%)”}”(hhh]”(hÞ)”}”(hŒ‹Modifies attributes of an existing I/O adapter interrupt source. Takes a kvm_s390_io_adapter_req specifying the adapter and the operation::”h]”hŒŠModifies attributes of an existing I/O adapter interrupt source. Takes a kvm_s390_io_adapter_req specifying the adapter and the operation:”…””}”(hj/h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kahj,ubj¨)”}”(hŒƒstruct kvm_s390_io_adapter_req { __u32 id; __u8 type; __u8 mask; __u16 pad0; __u64 addr; };”h]”hŒƒstruct kvm_s390_io_adapter_req { __u32 id; __u8 type; __u8 mask; __u16 pad0; __u64 addr; };”…””}”hj=sbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§h³hÇh´Kdhj,ubhÞ)”}”(hŒNid specifies the adapter and type the operation. The supported operations are:”h]”hŒNid specifies the adapter and type the operation. The supported operations are:”…””}”(hjKh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Klhj,ubj )”}”(hhh]”(j)”}”(hŒJKVM_S390_IO_ADAPTER_MASK mask or unmask the adapter, as specified in mask ”h]”(j)”}”(hŒKVM_S390_IO_ADAPTER_MASK”h]”hŒKVM_S390_IO_ADAPTER_MASK”…””}”(hj`h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kphj\ubj%)”}”(hhh]”hÞ)”}”(hŒ0mask or unmask the adapter, as specified in mask”h]”hŒ0mask or unmask the adapter, as specified in mask”…””}”(hjqh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kphjnubah}”(h]”h ]”h"]”h$]”h&]”uh1j$hj\ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KphjYubj)”}”(hŒYKVM_S390_IO_ADAPTER_MAP This is now a no-op. The mapping is purely done by the irq route.”h]”(j)”}”(hŒKVM_S390_IO_ADAPTER_MAP”h]”hŒKVM_S390_IO_ADAPTER_MAP”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Krhj‹ubj%)”}”(hhh]”hÞ)”}”(hŒAThis is now a no-op. The mapping is purely done by the irq route.”h]”hŒAThis is now a no-op. The mapping is purely done by the irq route.”…””}”(hj h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kshjubah}”(h]”h ]”h"]”h$]”h&]”uh1j$hj‹ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KrhjYubj)”}”(hŒ\KVM_S390_IO_ADAPTER_UNMAP This is now a no-op. The mapping is purely done by the irq route. ”h]”(j)”}”(hŒKVM_S390_IO_ADAPTER_UNMAP”h]”hŒKVM_S390_IO_ADAPTER_UNMAP”…””}”(hj¾h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kuhjºubj%)”}”(hhh]”hÞ)”}”(hŒAThis is now a no-op. The mapping is purely done by the irq route.”h]”hŒAThis is now a no-op. The mapping is purely done by the irq route.”…””}”(hjÏh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KuhjÌubah}”(h]”h ]”h"]”h$]”h&]”uh1j$hjºubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´KuhjYubeh}”(h]”h ]”h"]”h$]”h&]”uh1j hj,ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j$hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´Kuhj)ubj)”}”(hXÍKVM_DEV_FLIC_AISM modify the adapter-interruption-suppression mode for a given isc if the AIS capability is enabled. Takes a kvm_s390_ais_req describing:: struct kvm_s390_ais_req { __u8 isc; __u16 mode; }; isc contains the target I/O interruption subclass, mode the target adapter-interruption-suppression mode. The following modes are currently supported: - KVM_S390_AIS_MODE_ALL: ALL-Interruptions Mode, i.e. airq injection is always allowed; - KVM_S390_AIS_MODE_SINGLE: SINGLE-Interruption Mode, i.e. airq injection is only allowed once and the following adapter interrupts will be suppressed until the mode is set again to ALL-Interruptions or SINGLE-Interruption mode. ”h]”(j)”}”(hŒKVM_DEV_FLIC_AISM”h]”hŒKVM_DEV_FLIC_AISM”…””}”(hjÿh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K‰hjûubj%)”}”(hhh]”(hÞ)”}”(hŒˆmodify the adapter-interruption-suppression mode for a given isc if the AIS capability is enabled. Takes a kvm_s390_ais_req describing::”h]”hŒ‡modify the adapter-interruption-suppression mode for a given isc if the AIS capability is enabled. Takes a kvm_s390_ais_req describing:”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´Kxhj ubj¨)”}”(hŒBstruct kvm_s390_ais_req { __u8 isc; __u16 mode; };”h]”hŒBstruct kvm_s390_ais_req { __u8 isc; __u16 mode; };”…””}”hjsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§h³hÇh´K{hj ubhÞ)”}”(hŒ–isc contains the target I/O interruption subclass, mode the target adapter-interruption-suppression mode. The following modes are currently supported:”h]”hŒ–isc contains the target I/O interruption subclass, mode the target adapter-interruption-suppression mode. The following modes are currently supported:”…””}”(hj,h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K€hj ubjÚ)”}”(hhh]”(jß)”}”(hŒUKVM_S390_AIS_MODE_ALL: ALL-Interruptions Mode, i.e. airq injection is always allowed;”h]”hÞ)”}”(hŒUKVM_S390_AIS_MODE_ALL: ALL-Interruptions Mode, i.e. airq injection is always allowed;”h]”hŒUKVM_S390_AIS_MODE_ALL: ALL-Interruptions Mode, i.e. airq injection is always allowed;”…””}”(hjAh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K„hj=ubah}”(h]”h ]”h"]”h$]”h&]”uh1jÞhj:ubjß)”}”(hŒãKVM_S390_AIS_MODE_SINGLE: SINGLE-Interruption Mode, i.e. airq injection is only allowed once and the following adapter interrupts will be suppressed until the mode is set again to ALL-Interruptions or SINGLE-Interruption mode. ”h]”hÞ)”}”(hŒâKVM_S390_AIS_MODE_SINGLE: SINGLE-Interruption Mode, i.e. airq injection is only allowed once and the following adapter interrupts will be suppressed until the mode is set again to ALL-Interruptions or SINGLE-Interruption mode.”h]”hŒâKVM_S390_AIS_MODE_SINGLE: SINGLE-Interruption Mode, i.e. airq injection is only allowed once and the following adapter interrupts will be suppressed until the mode is set again to ALL-Interruptions or SINGLE-Interruption mode.”…””}”(hjYh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K†hjUubah}”(h]”h ]”h"]”h$]”h&]”uh1jÞhj:ubeh}”(h]”h ]”h"]”h$]”h&]”jþjÿuh1jÙh³hÇh´K„hj ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j$hjûubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K‰hj)ubj)”}”(hXjKVM_DEV_FLIC_AIRQ_INJECT Inject adapter interrupts on a specified adapter. attr->attr contains the unique id for the adapter, which allows for adapter-specific checks and actions. For adapters subject to AIS, handle the airq injection suppression for an isc according to the adapter-interruption-suppression mode on condition that the AIS capability is enabled. ”h]”(j)”}”(hŒKVM_DEV_FLIC_AIRQ_INJECT”h]”hŒKVM_DEV_FLIC_AIRQ_INJECT”…””}”(hjƒh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K‘hjubj%)”}”(hhh]”hÞ)”}”(hXPInject adapter interrupts on a specified adapter. attr->attr contains the unique id for the adapter, which allows for adapter-specific checks and actions. For adapters subject to AIS, handle the airq injection suppression for an isc according to the adapter-interruption-suppression mode on condition that the AIS capability is enabled.”h]”hXPInject adapter interrupts on a specified adapter. attr->attr contains the unique id for the adapter, which allows for adapter-specific checks and actions. For adapters subject to AIS, handle the airq injection suppression for an isc according to the adapter-interruption-suppression mode on condition that the AIS capability is enabled.”…””}”(hj”h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KŒhj‘ubah}”(h]”h ]”h"]”h$]”h&]”uh1j$hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K‘hj)ubj)”}”(hXaKVM_DEV_FLIC_AISM_ALL Gets or sets the adapter-interruption-suppression mode for all ISCs. Takes a kvm_s390_ais_all describing:: struct kvm_s390_ais_all { __u8 simm; /* Single-Interruption-Mode mask */ __u8 nimm; /* No-Interruption-Mode mask * }; simm contains Single-Interruption-Mode mask for all ISCs, nimm contains No-Interruption-Mode mask for all ISCs. Each bit in simm and nimm corresponds to an ISC (MSB0 bit 0 to ISC 0 and so on). The combination of simm bit and nimm bit presents AIS mode for a ISC. KVM_DEV_FLIC_AISM_ALL is indicated by KVM_CAP_S390_AIS_MIGRATION. ”h]”(j)”}”(hŒKVM_DEV_FLIC_AISM_ALL”h]”hŒKVM_DEV_FLIC_AISM_ALL”…””}”(hj²h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K¡hj®ubj%)”}”(hhh]”(hÞ)”}”(hŒjGets or sets the adapter-interruption-suppression mode for all ISCs. Takes a kvm_s390_ais_all describing::”h]”hŒiGets or sets the adapter-interruption-suppression mode for all ISCs. Takes a kvm_s390_ais_all describing:”…””}”(hjÃh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K”hjÀubj¨)”}”(hŒƒstruct kvm_s390_ais_all { __u8 simm; /* Single-Interruption-Mode mask */ __u8 nimm; /* No-Interruption-Mode mask * };”h]”hŒƒstruct kvm_s390_ais_all { __u8 simm; /* Single-Interruption-Mode mask */ __u8 nimm; /* No-Interruption-Mode mask * };”…””}”hjÑsbah}”(h]”h ]”h"]”h$]”h&]”hÅhÆuh1j§h³hÇh´K—hjÀubhÞ)”}”(hXsimm contains Single-Interruption-Mode mask for all ISCs, nimm contains No-Interruption-Mode mask for all ISCs. Each bit in simm and nimm corresponds to an ISC (MSB0 bit 0 to ISC 0 and so on). The combination of simm bit and nimm bit presents AIS mode for a ISC.”h]”hXsimm contains Single-Interruption-Mode mask for all ISCs, nimm contains No-Interruption-Mode mask for all ISCs. Each bit in simm and nimm corresponds to an ISC (MSB0 bit 0 to ISC 0 and so on). The combination of simm bit and nimm bit presents AIS mode for a ISC.”…””}”(hjßh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´KœhjÀubhÞ)”}”(hŒAKVM_DEV_FLIC_AISM_ALL is indicated by KVM_CAP_S390_AIS_MIGRATION.”h]”hŒAKVM_DEV_FLIC_AISM_ALL is indicated by KVM_CAP_S390_AIS_MIGRATION.”…””}”(hjíh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K¡hjÀubeh}”(h]”h ]”h"]”h$]”h&]”uh1j$hj®ubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K¡hj)ubeh}”(h]”h ]”h"]”h$]”h&]”uh1j hj&ubah}”(h]”h ]”h"]”h$]”h&]”uh1j$hjubeh}”(h]”h ]”h"]”h$]”h&]”uh1jh³hÇh´K¡hj ubah}”(h]”h ]”h"]”h$]”h&]”uh1j hhÊh²hh³Nh´NubhÞ)”}”(hXFNote: The KVM_SET_DEVICE_ATTR/KVM_GET_DEVICE_ATTR device ioctls executed on FLIC with an unknown group or attribute gives the error code EINVAL (instead of ENXIO, as specified in the API documentation). It is not possible to conclude that a FLIC operation is unavailable based on the error code resulting from a usage attempt.”h]”hXFNote: The KVM_SET_DEVICE_ATTR/KVM_GET_DEVICE_ATTR device ioctls executed on FLIC with an unknown group or attribute gives the error code EINVAL (instead of ENXIO, as specified in the API documentation). It is not possible to conclude that a FLIC operation is unavailable based on the error code resulting from a usage attempt.”…””}”(hjh²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K£hhÊh²hubhŒnote”“”)”}”(hŒYThe KVM_DEV_FLIC_CLEAR_IO_IRQ ioctl will return EINVAL in case a zero schid is specified.”h]”hÞ)”}”(hŒYThe KVM_DEV_FLIC_CLEAR_IO_IRQ ioctl will return EINVAL in case a zero schid is specified.”h]”hŒYThe KVM_DEV_FLIC_CLEAR_IO_IRQ ioctl will return EINVAL in case a zero schid is specified.”…””}”(hj3h²hh³Nh´Nubah}”(h]”h ]”h"]”h$]”h&]”uh1hÝh³hÇh´K©hj/ubah}”(h]”h ]”h"]”h$]”h&]”uh1j-hhÊh²hh³hÇh´Nubeh}”(h]”Œ"flic-floating-interrupt-controller”ah ]”h"]”Œ$flic (floating interrupt controller)”ah$]”h&]”uh1hÈhhh²hh³hÇh´Kubeh}”(h]”h ]”h"]”h$]”h&]”Œsource”hÇuh1hŒcurrent_source”NŒ current_line”NŒsettings”Œdocutils.frontend”ŒValues”“”)”}”(hÍNŒ generator”NŒ datestamp”NŒ source_link”NŒ source_url”NŒ toc_backlinks”Œentry”Œfootnote_backlinks”KŒ sectnum_xform”KŒstrip_comments”NŒstrip_elements_with_classes”NŒ strip_classes”NŒ report_level”KŒ halt_level”KŒexit_status_level”KŒdebug”NŒwarning_stream”NŒ traceback”ˆŒinput_encoding”Œ utf-8-sig”Œinput_encoding_error_handler”Œstrict”Œoutput_encoding”Œutf-8”Œoutput_encoding_error_handler”jrŒerror_encoding”Œutf-8”Œerror_encoding_error_handler”Œbackslashreplace”Œ language_code”Œen”Œrecord_dependencies”NŒconfig”NŒ id_prefix”hŒauto_id_prefix”Œid”Œ dump_settings”NŒdump_internals”NŒdump_transforms”NŒdump_pseudo_xml”NŒexpose_internals”NŒstrict_visitor”NŒ_disable_config”NŒ_source”hÇŒ _destination”NŒ _config_files”]”Œ7/var/lib/git/docbuild/linux/Documentation/docutils.conf”aŒfile_insertion_enabled”ˆŒ raw_enabled”KŒline_length_limit”M'Œpep_references”NŒ pep_base_url”Œhttps://peps.python.org/”Œpep_file_url_template”Œpep-%04d”Œrfc_references”NŒ rfc_base_url”Œ&https://datatracker.ietf.org/doc/html/”Œ tab_width”KŒtrim_footnote_reference_space”‰Œsyntax_highlight”Œlong”Œ smart_quotes”ˆŒsmartquotes_locales”]”Œcharacter_level_inline_markup”‰Œdoctitle_xform”‰Œ docinfo_xform”KŒsectsubtitle_xform”‰Œ image_loading”Œlink”Œembed_stylesheet”‰Œcloak_email_addresses”ˆŒsection_self_link”‰Œenv”NubŒreporter”NŒindirect_targets”]”Œsubstitution_defs”}”Œsubstitution_names”}”Œrefnames”}”Œrefids”}”Œnameids”}”jLjIsŒ nametypes”}”jL‰sh}”jIhÊsŒ footnote_refs”}”Œ citation_refs”}”Œ autofootnotes”]”Œautofootnote_refs”]”Œsymbol_footnotes”]”Œsymbol_footnote_refs”]”Œ footnotes”]”Œ citations”]”Œautofootnote_start”KŒsymbol_footnote_start”KŒ id_counter”Œ collections”ŒCounter”“”}”…”R”Œparse_messages”]”Œtransform_messages”]”Œ transformer”NŒ include_log”]”Œ decoration”Nh²hub.