KVM: s390: deliver floating interrupts in order of priority
authorJens Freimann <jfrei@linux.vnet.ibm.com>
Wed, 3 Jul 2013 13:18:35 +0000 (15:18 +0200)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 31 Mar 2015 19:07:27 +0000 (21:07 +0200)
commit6d3da241416e6088f83a7ff1f37fb6bb518d9bc8
treec10a62568354ed53722f735f8a4ad600d720b177
parent94aa033efcac47b09db22cb561e135baf37b7887
KVM: s390: deliver floating interrupts in order of priority

This patch makes interrupt handling compliant to the z/Architecture
Principles of Operation with regard to interrupt priorities.

Add a bitmap for pending floating interrupts. Each bit relates to a
interrupt type and its list. A turned on bit indicates that a list
contains items (interrupts) which need to be delivered.  When delivering
interrupts on a cpu we can merge the existing bitmap for cpu-local
interrupts and floating interrupts and have a single mechanism for
delivery.
Currently we have one list for all kinds of floating interrupts and a
corresponding spin lock. This patch adds a separate list per
interrupt type. An exception to this are service signal and machine check
interrupts, as there can be only one pending interrupt at a time.

Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
arch/s390/include/asm/kvm_host.h
arch/s390/kvm/interrupt.c
arch/s390/kvm/kvm-s390.c
arch/s390/kvm/kvm-s390.h
arch/s390/kvm/priv.c