KVM: s390: Add support for channel I/O instructions.
Add a new capability, KVM_CAP_S390_CSS_SUPPORT, which will pass intercepts for channel I/O instructions to userspace. Only I/O instructions interacting with I/O interrupts need to be handled in-kernel: - TEST PENDING INTERRUPTION (tpi) dequeues and stores pending interrupts entirely in-kernel. - TEST SUBCHANNEL (tsch) dequeues pending interrupts in-kernel and exits via KVM_EXIT_S390_TSCH to userspace for subchannel- related processing. Reviewed-by: Marcelo Tosatti <mtosatti@redhat.com> Reviewed-by: Alexander Graf <agraf@suse.de> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:

committed by
Marcelo Tosatti

parent
d6712df95b
commit
fa6b7fe992
@@ -2350,6 +2350,22 @@ The possible hypercalls are defined in the Power Architecture Platform
|
||||
Requirements (PAPR) document available from www.power.org (free
|
||||
developer registration required to access it).
|
||||
|
||||
/* KVM_EXIT_S390_TSCH */
|
||||
struct {
|
||||
__u16 subchannel_id;
|
||||
__u16 subchannel_nr;
|
||||
__u32 io_int_parm;
|
||||
__u32 io_int_word;
|
||||
__u32 ipb;
|
||||
__u8 dequeued;
|
||||
} s390_tsch;
|
||||
|
||||
s390 specific. This exit occurs when KVM_CAP_S390_CSS_SUPPORT has been enabled
|
||||
and TEST SUBCHANNEL was intercepted. If dequeued is set, a pending I/O
|
||||
interrupt for the target subchannel has been dequeued and subchannel_id,
|
||||
subchannel_nr, io_int_parm and io_int_word contain the parameters for that
|
||||
interrupt. ipb is needed for instruction parameter decoding.
|
||||
|
||||
/* Fix the size of the union. */
|
||||
char padding[256];
|
||||
};
|
||||
@@ -2471,3 +2487,17 @@ For mmu types KVM_MMU_FSL_BOOKE_NOHV and KVM_MMU_FSL_BOOKE_HV:
|
||||
where "num_sets" is the tlb_sizes[] value divided by the tlb_ways[] value.
|
||||
- The tsize field of mas1 shall be set to 4K on TLB0, even though the
|
||||
hardware ignores this value for TLB0.
|
||||
|
||||
6.4 KVM_CAP_S390_CSS_SUPPORT
|
||||
|
||||
Architectures: s390
|
||||
Parameters: none
|
||||
Returns: 0 on success; -1 on error
|
||||
|
||||
This capability enables support for handling of channel I/O instructions.
|
||||
|
||||
TEST PENDING INTERRUPTION and the interrupt portion of TEST SUBCHANNEL are
|
||||
handled in-kernel, while the other I/O instructions are passed to userspace.
|
||||
|
||||
When this capability is enabled, KVM_EXIT_S390_TSCH will occur on TEST
|
||||
SUBCHANNEL intercepts.
|
||||
|
Reference in New Issue
Block a user