Commit e7b37640 authored by Nathan Fontenot's avatar Nathan Fontenot Committed by Greg Kroah-Hartman

powerpc/pseries: Disable CPU hotplug across migrations

[ Upstream commit 85a88cab ]

When performing partition migrations all present CPUs must be online
as all present CPUs must make the H_JOIN call as part of the migration
process. Once all present CPUs make the H_JOIN call, one CPU is returned
to make the rtas call to perform the migration to the destination system.

During testing of migration and changing the SMT state we have found
instances where CPUs are offlined, as part of the SMT state change,
before they make the H_JOIN call. This results in a hung system where
every CPU is either in H_JOIN or offline.

To prevent this this patch disables CPU hotplug during the migration
process.
Signed-off-by: default avatarNathan Fontenot <nfont@linux.vnet.ibm.com>
Reviewed-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 9271304c
......@@ -985,6 +985,7 @@ int rtas_ibm_suspend_me(u64 handle)
goto out;
}
cpu_hotplug_disable();
stop_topology_update();
/* Call function on all CPUs. One of us will make the
......@@ -999,6 +1000,7 @@ int rtas_ibm_suspend_me(u64 handle)
printk(KERN_ERR "Error doing global join\n");
start_topology_update();
cpu_hotplug_enable();
/* Take down CPUs not online prior to suspend */
cpuret = rtas_offline_cpus_mask(offline_mask);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment