powerpc/pseries: Fix partition migration hang under load
authorBrian King <brking@linux.vnet.ibm.com>
Tue, 17 Feb 2009 06:49:50 +0000 (06:49 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Mon, 23 Feb 2009 04:53:04 +0000 (15:53 +1100)
commitf52862f4070fb930e407d466aa82d8efcc98c9ed
tree750b42530408632015bd77e29879c994fb854429
parent448e2ca0e32a5c437650d634b6032ab732662338
powerpc/pseries: Fix partition migration hang under load

While testing partition migration with heavy CPU load using
shared processors, it was observed that sometimes the migration
would never complete and would appear to hang. Currently, the
migration code assumes that if H_SUCCESS is returned from the H_JOIN
then the migration is complete and the processor is waking up on
the target system. If there was an outstanding PROD to the processor
when the H_JOIN is called, however, it will return H_SUCCESS on the source
system, causing the migration to hang, or in some scenarios cause
the kernel to crash on the complete call waking the caller
of rtas_percpu_suspend_me. Fix this by calling H_JOIN multiple times
if necessary during the migration.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/rtas.c