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:
		
					parent
					
						
							
								d6712df95b
							
						
					
				
			
			
				commit
				
					
						fa6b7fe992
					
				
			
		
					 10 changed files with 202 additions and 5 deletions
				
			
		|  | @ -168,6 +168,7 @@ struct kvm_pit_config { | |||
| #define KVM_EXIT_PAPR_HCALL	  19 | ||||
| #define KVM_EXIT_S390_UCONTROL	  20 | ||||
| #define KVM_EXIT_WATCHDOG         21 | ||||
| #define KVM_EXIT_S390_TSCH        22 | ||||
| 
 | ||||
| /* For KVM_EXIT_INTERNAL_ERROR */ | ||||
| /* Emulate instruction failed. */ | ||||
|  | @ -285,6 +286,15 @@ struct kvm_run { | |||
| 			__u64 ret; | ||||
| 			__u64 args[9]; | ||||
| 		} papr_hcall; | ||||
| 		/* 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; | ||||
| 		/* Fix the size of the union. */ | ||||
| 		char padding[256]; | ||||
| 	}; | ||||
|  | @ -645,6 +655,7 @@ struct kvm_ppc_smmu_info { | |||
| #define KVM_CAP_IRQFD_RESAMPLE 82 | ||||
| #define KVM_CAP_PPC_BOOKE_WATCHDOG 83 | ||||
| #define KVM_CAP_PPC_HTAB_FD 84 | ||||
| #define KVM_CAP_S390_CSS_SUPPORT 85 | ||||
| 
 | ||||
| #ifdef KVM_CAP_IRQ_ROUTING | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Cornelia Huck
				Cornelia Huck