ӊsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget./translations/zh_CN/virt/kvm/devices/s390_flicmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/zh_TW/virt/kvm/devices/s390_flicmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/it_IT/virt/kvm/devices/s390_flicmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/ja_JP/virt/kvm/devices/s390_flicmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/ko_KR/virt/kvm/devices/s390_flicmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget./translations/sp_SP/virt/kvm/devices/s390_flicmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhH/var/lib/git/docbuild/linux/Documentation/virt/kvm/devices/s390_flic.rsthKubhsection)}(hhh](htitle)}(h$FLIC (floating interrupt controller)h]h$FLIC (floating interrupt controller)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hFLIC 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]hFLIC 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.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(h+Only one FLIC instance may be instantiated.h]h+Only one FLIC instance may be instantiated.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(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)}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubhdefinition_list)}(hhh]hdefinition_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](hterm)}(hGroups:h]hGroups:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhhubh definition)}(hhh]h)}(hhh](h)}(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)}(hKVM_DEV_FLIC_ENQUEUEh]hKVM_DEV_FLIC_ENQUEUE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubj)}(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.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj*ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(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)}(hKVM_DEV_FLIC_GET_ALL_IRQSh]hKVM_DEV_FLIC_GET_ALL_IRQS}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK.hjGubj)}(hhh](h)}(hCopies 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]hCopies 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.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK"hjYubh)}(hL-ENOBUFS is returned when the allocation of a kernelspace buffer has failed.h]hL-ENOBUFS is returned when the allocation of a kernelspace buffer has failed.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjYubh)}(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.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hjYubeh}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ]h"]h$]h&]uh1hhhhK.hjubh)}(hKVM_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)}(hKVM_DEV_FLIC_CLEAR_IRQSh]hKVM_DEV_FLIC_CLEAR_IRQS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK2hjubj)}(hhh]h)}(hSimply deletes all elements from the list of currently pending floating interrupts. No interrupts are injected into the guest.h]hSimply deletes all elements from the list of currently pending floating interrupts. No interrupts are injected into the guest.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK2hjubh)}(hKVM_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)}(hKVM_DEV_FLIC_CLEAR_IO_IRQh]hKVM_DEV_FLIC_CLEAR_IO_IRQ}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK7hjubj)}(hhh]h)}(hDeletes 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]hDeletes 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).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK5hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK7hjubh)}(hKVM_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)}(hKVM_DEV_FLIC_APF_ENABLEh]hKVM_DEV_FLIC_APF_ENABLE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK=hjubj)}(hhh](h)}(hEnables 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]hEnables 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK: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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK=hjubh)}(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)}(hKVM_DEV_FLIC_APF_DISABLE_WAITh]hKVM_DEV_FLIC_APF_DISABLE_WAIT}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKDhj-ubj)}(hhh](h)}(hDisables 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]hDisables 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.}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK@hj?ubh)}(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.}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhj?ubeh}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1hhhhKDhjubh)}(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)}(hKVM_DEV_FLIC_ADAPTER_REGISTERh]hKVM_DEV_FLIC_ADAPTER_REGISTER}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhK^hjjubj)}(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)}(hjRegister an I/O adapter interrupt source. Takes a kvm_s390_io_adapter describing the adapter to register::h]hiRegister an I/O adapter interrupt source. Takes a kvm_s390_io_adapter describing the adapter to register:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjubh literal_block)}(hstruct kvm_s390_io_adapter { __u32 id; __u8 isc; __u8 maskable; __u8 swap; __u8 flags; };h]hstruct kvm_s390_io_adapter { __u32 id; __u8 isc; __u8 maskable; __u8 swap; __u8 flags; };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKJhjubeh}(h]h ]h"]h$]h&]uh1jhhhKGhj|ubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKRhj|ubh)}(h)Currently defined values for 'flags' are:h]h-Currently defined values for ‘flags’ are:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKWhj|ubh bullet_list)}(hhh]h list_item)}(hKVM_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)}(hKVM_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]hKVM_S390_ADAPTER_SUPPRESSIBLE: adapter is subject to AIS (adapter-interrupt-suppression) facility. This flag only has an effect if the AIS capability is enabled.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]bullet-uh1jhhhKYhj|ubh)}(h Unknown flag values are ignored.h]h Unknown flag values are ignored.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hj|ubeh}(h]h ]h"]h$]h&]uh1jhjjubeh}(h]h ]h"]h$]h&]uh1hhhhK^hjubh)}(hXKVM_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)}(hKVM_DEV_FLIC_ADAPTER_MODIFYh]hKVM_DEV_FLIC_ADAPTER_MODIFY}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKuhjubj)}(hhh](h)}(hModifies attributes of an existing I/O adapter interrupt source. Takes a kvm_s390_io_adapter_req specifying the adapter and the operation::h]hModifies attributes of an existing I/O adapter interrupt source. Takes a kvm_s390_io_adapter_req specifying the adapter and the operation:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjubj)}(hstruct kvm_s390_io_adapter_req { __u32 id; __u8 type; __u8 mask; __u16 pad0; __u64 addr; };h]hstruct kvm_s390_io_adapter_req { __u32 id; __u8 type; __u8 mask; __u16 pad0; __u64 addr; };}hj)sbah}(h]h ]h"]h$]h&]hhuh1jhhhKdhjubh)}(hNid specifies the adapter and type the operation. The supported operations are:h]hNid specifies the adapter and type the operation. The supported operations are:}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubh)}(hhh](h)}(hJKVM_S390_IO_ADAPTER_MASK mask or unmask the adapter, as specified in mask h](j)}(hKVM_S390_IO_ADAPTER_MASKh]hKVM_S390_IO_ADAPTER_MASK}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKphjHubj)}(hhh]h)}(h0mask or unmask the adapter, as specified in maskh]h0mask or unmask the adapter, as specified in mask}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphjZubah}(h]h ]h"]h$]h&]uh1jhjHubeh}(h]h ]h"]h$]h&]uh1hhhhKphjEubh)}(hYKVM_S390_IO_ADAPTER_MAP This is now a no-op. The mapping is purely done by the irq route.h](j)}(hKVM_S390_IO_ADAPTER_MAPh]hKVM_S390_IO_ADAPTER_MAP}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKrhjwubj)}(hhh]h)}(hAThis is now a no-op. The mapping is purely done by the irq route.h]hAThis is now a no-op. The mapping is purely done by the irq route.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshjubah}(h]h ]h"]h$]h&]uh1jhjwubeh}(h]h ]h"]h$]h&]uh1hhhhKrhjEubh)}(h\KVM_S390_IO_ADAPTER_UNMAP This is now a no-op. The mapping is purely done by the irq route. h](j)}(hKVM_S390_IO_ADAPTER_UNMAPh]hKVM_S390_IO_ADAPTER_UNMAP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKuhjubj)}(hhh]h)}(hAThis is now a no-op. The mapping is purely done by the irq route.h]hAThis is now a no-op. The mapping is purely done by the irq route.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhKuhjEubeh}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhKuhjubh)}(hXKVM_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)}(hKVM_DEV_FLIC_AISMh]hKVM_DEV_FLIC_AISM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubj)}(hhh](h)}(hmodify the adapter-interruption-suppression mode for a given isc if the AIS capability is enabled. Takes a kvm_s390_ais_req describing::h]hmodify the adapter-interruption-suppression mode for a given isc if the AIS capability is enabled. Takes a kvm_s390_ais_req describing:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhjubj)}(hBstruct kvm_s390_ais_req { __u8 isc; __u16 mode; };h]hBstruct kvm_s390_ais_req { __u8 isc; __u16 mode; };}hj sbah}(h]h ]h"]h$]h&]hhuh1jhhhK{hjubh)}(hisc contains the target I/O interruption subclass, mode the target adapter-interruption-suppression mode. The following modes are currently supported:h]hisc contains the target I/O interruption subclass, mode the target adapter-interruption-suppression mode. The following modes are currently supported:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hhh](j)}(hUKVM_S390_AIS_MODE_ALL: ALL-Interruptions Mode, i.e. airq injection is always allowed;h]h)}(hUKVM_S390_AIS_MODE_ALL: ALL-Interruptions Mode, i.e. airq injection is always allowed;h]hUKVM_S390_AIS_MODE_ALL: ALL-Interruptions Mode, i.e. airq injection is always allowed;}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj)ubah}(h]h ]h"]h$]h&]uh1jhj&ubj)}(hKVM_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)}(hKVM_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]hKVM_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.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjAubah}(h]h ]h"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]jjuh1jhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(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)}(hKVM_DEV_FLIC_AIRQ_INJECTh]hKVM_DEV_FLIC_AIRQ_INJECT}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjkubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj}ubah}(h]h ]h"]h$]h&]uh1jhjkubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(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)}(hKVM_DEV_FLIC_AISM_ALLh]hKVM_DEV_FLIC_AISM_ALL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhhhKhjubj)}(hhh](h)}(hjGets or sets the adapter-interruption-suppression mode for all ISCs. Takes a kvm_s390_ais_all describing::h]hiGets or sets the adapter-interruption-suppression mode for all ISCs. Takes a kvm_s390_ais_all describing:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubj)}(hstruct kvm_s390_ais_all { __u8 simm; /* Single-Interruption-Mode mask */ __u8 nimm; /* No-Interruption-Mode mask * };h]hstruct kvm_s390_ais_all { __u8 simm; /* Single-Interruption-Mode mask */ __u8 nimm; /* No-Interruption-Mode mask * };}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKhjubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubh)}(hAKVM_DEV_FLIC_AISM_ALL is indicated by KVM_CAP_S390_AIS_MIGRATION.h]hAKVM_DEV_FLIC_AISM_ALL is indicated by KVM_CAP_S390_AIS_MIGRATION.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubeh}(h]h ]h"]h$]h&]uh1hhjubah}(h]h ]h"]h$]h&]uh1jhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhNhNubh)}(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.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhnote)}(hYThe KVM_DEV_FLIC_CLEAR_IO_IRQ ioctl will return EINVAL in case a zero schid is specified.h]h)}(hYThe KVM_DEV_FLIC_CLEAR_IO_IRQ ioctl will return EINVAL in case a zero schid is specified.h]hYThe KVM_DEV_FLIC_CLEAR_IO_IRQ ioctl will return EINVAL in case a zero schid is specified.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhhhhhNubeh}(h]"flic-floating-interrupt-controllerah ]h"]$flic (floating interrupt controller)ah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj^error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}j8j5s nametypes}j8sh}j5hs footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.