On 10 March 2015 at 04:29, Christoffer Dall <christoffer.dall@xxxxxxxxxx> wrote: > On Mon, Mar 09, 2015 at 04:34:21PM +0000, Alex Bennée wrote: >> - Boot >> - Power on secondary CPUs >> - Power off one secondary CPU >> - Migrate to file (cpu_powered reflects state of each CPU) >> >> - Start fresh QEMU >> - Restore from file (cpu_powered -> vcpu->paused via ioctl) >> - Run (we continue with the same power state pre-migrate) >> >> - PSCI RESET >> - Does what it does, power all secondaries down? >> - Kernel boots, turns them on? >> > Hmmm. As long as QEMU always inits all VCPUs in the exact same way > (including the KVM_ARM_VCPU_POWER_OFF feature bit) I guess it works and > that's probably a reasonable requirement for migration. We init the VCPUs with the POWER_OFF flag set for exactly the set of CPUs that we want to start powered off. Typically that means that the first CPU is inited with POWER_OFF clear and the rest are inited with it set. Regardless, if we're doing an incoming migration, then the incoming data will be used to set the VCPU on/off state appropriately for resuming the VM. (This might include powering on a VCPU that's been inited in power-off and never run, or powering down a VCPU that was inited power-on but never ran. In the 'migration moves a vcpu to powered-on' case we'll also set the vcpu's PC and other registers so when it is run it will DTRT.) If the resumed guest subsequently does a PSCI reset then QEMU will re-init the VCPUs with the set of feature bits that the machine model/etc defines for a reset condition for this board, which will be the same "first CPU powered on, all the rest powered off" config we started with. (It's the user's responsibility to ensure that when doing a migration the QEMUs at both ends are identically configured, incidentally.) -- PMM -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html