{"push_id":2913053467,"size":1,"distinct_size":1,"ref":"refs/heads/powerpc_rtas_Fix_a_potential_race_between_CPU-Offline_&_Migration_mbox_next","head":"416cd74319e34a8a4b1cb288d6a9a9da1b70cfa1","before":"610efeb6e5a33cd68747d59f66c0c39d23a11998","commits":[{"sha":"416cd74319e34a8a4b1cb288d6a9a9da1b70cfa1","author":{"name":"Gautham R. Shenoy","email":"c13571dbffa0eb89c7f8eebdce482897b0f5a685@linux.vnet.ibm.com"},"message":"powerpc/rtas: Fix a potential race between CPU-Offline & Migration\n\nLive Partition Migrations require all the present CPUs to execute the\nH_JOIN call, and hence rtas_ibm_suspend_me() onlines any offline CPUs\nbefore initiating the migration for this purpose.\n\nThe commit 85a88cabad57\n(\"powerpc/pseries: Disable CPU hotplug across migrations\")\ndisables any CPU-hotplug operations once all the offline CPUs are\nbrought online to prevent any further state change. Once the\nCPU-Hotplug operation is disabled, the code assumes that all the CPUs\nare online.\n\nHowever, there is a minor window in rtas_ibm_suspend_me() between\nonlining the offline CPUs and disabling CPU-Hotplug when a concurrent\nCPU-offline operations initiated by the userspace can succeed thereby\nnullifying the the aformentioned assumption. In this unlikely case\nthese offlined CPUs will not call H_JOIN, resulting in a system hang.\n\nFix this by verifying that all the present CPUs are actually online\nafter CPU-Hotplug has been disabled, failing which we return from\nrtas_ibm_suspend_me() with -EBUSY.\n\nCc: Nathan Fontenot <nfont@linux.vnet.ibm.com>\nCc: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>\nSuggested-by: Michael Ellerman <mpe@ellerman.id.au>\nSigned-off-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/ruscur/linux/commits/416cd74319e34a8a4b1cb288d6a9a9da1b70cfa1"}]}
{"actor":{"display_login":"ruscur"}}