summaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm/processor.h
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2011-05-23 10:24:34 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2011-05-23 10:24:29 +0200
commitf2db2e6cb3f5f766cbb3788af44705685ff2445a (patch)
tree11fbf5522f332e13f9bfb6cf4552513e4d865003 /arch/s390/include/asm/processor.h
parentb456d94a9757db54eca4677c1b3a13e7170c9bb3 (diff)
downloadblackbird-op-linux-f2db2e6cb3f5f766cbb3788af44705685ff2445a.tar.gz
blackbird-op-linux-f2db2e6cb3f5f766cbb3788af44705685ff2445a.zip
[S390] pfault: cpu hotplug vs missing completion interrupts
On cpu hot remove a PFAULT CANCEL command is sent to the hypervisor which in turn will cancel all outstanding pfault requests that have been issued on that cpu (the same happens with a SIGP cpu reset). The result is that we end up with uninterruptible processes where the interrupt that would wake up these processes never arrives. In order to solve this all processes which wait for a pfault completion interrupt get woken up after a cpu hot remove. The worst case that could happen is that they fault again and in turn need to wait again. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/processor.h')
-rw-r--r--arch/s390/include/asm/processor.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h
index 2c79b6416271..1300c3025334 100644
--- a/arch/s390/include/asm/processor.h
+++ b/arch/s390/include/asm/processor.h
@@ -84,6 +84,7 @@ struct thread_struct {
struct per_event per_event; /* Cause of the last PER trap */
/* pfault_wait is used to block the process on a pfault event */
unsigned long pfault_wait;
+ struct list_head list;
};
typedef struct thread_struct thread_struct;
OpenPOWER on IntegriCloud