On 05/04/2018 01:13 PM, Cédric Le Goater wrote: > On 05/04/2018 12:41 PM, Michael Ellerman wrote: >> Cédric Le Goater <c...@kaod.org> writes: >> >>> The kexec_state KEXEC_STATE_IRQS_OFF barrier is reached by all >>> secondary CPUs before the kexec_cpu_down() operation is called on >>> secondaries. This can raise conflicts and provoque errors in the XIVE >>> hcalls when XIVE is shutdowned with H_INT_RESET on the primary CPU. >>> >>> To synchronize the kexec_cpu_down() operations and make sure the >>> secondaries have completed their task before the primary starts doing >>> the same, let's move the primary kexec_cpu_down() after the >>> KEXEC_STATE_REAL_MODE barrier. >> >> This sounds reasonable, I'm sure you've tested it. I'm just a bit >> worried that it could potentially break on other platforms because it >> changes the sequence of operations. > > yes. We are adding a last barrier to be exact making the full sequence > a little slower. > >> Looking we only have kexec_cpu_down() implemented for pseries, powernv, >> ps3 and 85xx. >> >> We can easily test the first two. > ps3 doesn't do much so hopefully that's >> safe. >> >> mpc85xx_smp_kexec_cpu_down() does very little on 32-bit, and on 64-bit >> it seems to already wait for at least one other CPU to get into >> KEXEC_STATE_REAL_MODE, so that's probably safe too. >> >> So I guess I'm OK to merge this, and we'll fix any fallout. It would be >> good for the change log to call out the change though, and that we think >> it's a sensible change for all platforms. > > OK.
Ah and can you please fix the 'shutdowned' spelling ? it has been bugging me since I sent the patch :) thx C.