KVM: s390: pv: make use of ultravisor AIV support
authorMichael Mueller <mimu@linux.ibm.com>
Wed, 9 Feb 2022 15:22:17 +0000 (16:22 +0100)
committerChristian Borntraeger <borntraeger@linux.ibm.com>
Fri, 25 Feb 2022 13:30:13 +0000 (14:30 +0100)
commitee6a569d3bf64c9676eee3eecb861fb01cc11311
tree5a48860aab32440083f3d2bbe0077215aad15ee5
parent3d9042f8b923810c169ece02d91c70ec498eff0b
KVM: s390: pv: make use of ultravisor AIV support

This patch enables the ultravisor adapter interruption vitualization
support indicated by UV feature BIT_UV_FEAT_AIV. This allows ISC
interruption injection directly into the GISA IPM for PV kvm guests.

Hardware that does not support this feature will continue to use the
UV interruption interception method to deliver ISC interruptions to
PV kvm guests. For this purpose, the ECA_AIV bit for all guest cpus
will be cleared and the GISA will be disabled during PV CPU setup.

In addition a check in __inject_io() has been removed. That reduces the
required instructions for interruption handling for PV and traditional
kvm guests.

Signed-off-by: Michael Mueller <mimu@linux.ibm.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Link: https://lore.kernel.org/r/20220209152217.1793281-2-mimu@linux.ibm.com
Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@linux.ibm.com>
arch/s390/include/asm/uv.h
arch/s390/kvm/interrupt.c
arch/s390/kvm/kvm-s390.c
arch/s390/kvm/kvm-s390.h