Christian Borntraeger 5288fbf0ef KVM: s390: interprocessor communication via sigp
This patch introduces in-kernel handling of _some_ sigp interprocessor
signals (similar to ipi).
kvm_s390_handle_sigp() decodes the sigp instruction and calls individual
handlers depending on the operation requested:
- sigp sense tries to retrieve information such as existence or running state
  of the remote cpu
- sigp emergency sends an external interrupt to the remove cpu
- sigp stop stops a remove cpu
- sigp stop store status stops a remote cpu, and stores its entire internal
  state to the cpus lowcore
- sigp set arch sets the architecture mode of the remote cpu. setting to
  ESAME (s390x 64bit) is accepted, setting to ESA/S390 (s390, 31 or 24 bit) is
  denied, all others are passed to userland
- sigp set prefix sets the prefix register of a remote cpu

For implementation of this, the stop intercept indication starts to get reused
on purpose: a set of action bits defines what to do once a cpu gets stopped:
ACTION_STOP_ON_STOP  really stops the cpu when a stop intercept is recognized
ACTION_STORE_ON_STOP stores the cpu status to lowcore when a stop intercept is
                     recognized

Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
2008-04-27 12:00:46 +03:00
..
2006-09-28 16:56:43 +02:00
2005-09-07 16:57:21 -07:00
2007-03-05 23:35:50 +01:00
2006-09-28 16:56:43 +02:00
2008-04-17 07:47:06 +02:00
2007-10-12 16:12:59 +02:00
2008-02-03 16:32:51 +02:00
2008-02-06 10:41:00 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-09-28 16:55:39 +02:00
2006-09-20 15:58:51 +02:00
2006-09-28 16:56:43 +02:00
2008-02-09 18:24:41 +01:00
2005-04-16 15:20:36 -07:00
2007-02-05 21:18:19 +01:00
2007-07-17 10:23:11 -07:00
2007-02-12 15:49:57 +01:00
2006-01-10 08:01:34 -08:00
2008-02-08 09:22:24 -08:00
2005-04-16 15:20:36 -07:00
2006-10-06 16:38:35 +02:00
2006-09-28 16:56:43 +02:00
2008-02-07 08:42:30 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-02-15 15:32:22 -08:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2008-02-09 18:24:40 +01:00
2005-04-16 15:20:36 -07:00
2008-02-09 18:24:41 +01:00
2007-05-11 08:29:34 -07:00
2007-01-11 18:18:22 -08:00
2008-01-26 14:11:27 +01:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-01-14 18:27:10 -08:00
2005-04-16 15:20:36 -07:00
2008-04-17 10:42:34 -04:00
2005-04-16 15:20:36 -07:00
2007-04-27 16:01:44 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2005-05-01 08:59:08 -07:00
2006-09-28 16:56:43 +02:00
2008-04-17 07:47:01 +02:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2006-09-28 16:56:43 +02:00
2005-04-16 15:20:36 -07:00
2008-04-17 07:47:01 +02:00
2008-02-08 09:22:24 -08:00
2008-02-08 09:22:24 -08:00
2008-04-17 07:47:06 +02:00
2008-02-09 18:24:41 +01:00
2005-04-16 15:20:36 -07:00
2008-04-17 07:47:01 +02:00
2007-02-05 21:18:17 +01:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2008-02-09 18:24:37 +01:00
2008-02-07 08:42:30 -08:00
2005-04-16 15:20:36 -07:00