On 03/04/21 10:21, Paolo Bonzini wrote: > Hi Tobin, > > as mentioned in the reply to the QEMU patches posted by Tobin, I > think the firmware helper approach is very good, but there are some > disadvantages in the idea of auxiliary vCPUs. These are especially > true in the VMM, where it's much nicer to have a separate VM that > goes through a specialized run loop; however, even in the firmware > level there are some complications (as you pointed out) in letting > MpService workers run after ExitBootServices. > > My idea would be that the firmware would start the VM as usual using > the same launch data; then, the firmware would detect it was running > as a migration helper VM during the SEC or PEI phases (for example > via the GHCB or some other unencrypted communication area), and > divert execution to the migration helper instead of proceeding to the > next boot phase. This would be somewhat similar in spirit to how edk2 > performs S3 resume, if my memory serves correctly.
Very cool. You'd basically warm-reboot the virtual machine into a new boot mode (cf. BOOT_WITH_FULL_CONFIGURATION vs. BOOT_ON_S3_RESUME in OvmfPkg/PlatformPei). To me that's much more attractive than a "background job". The S3 parallel is great. What I'm missing is: - Is it possible to warm-reboot an SEV VM? (I vaguely recall that it's not possible for SEV-ES at least.) Because, that's how we'd transfer control to the early parts of the firmware again, IIUC your idea, while preserving the memory contents. - Who would initiate this process? S3 suspend is guest-initiated. (Not that we couldn't use the guest agent, if needed.) (In case the idea is really about a separate VM, and not about rebooting the already running VM, then I don't understand -- how would a separate VM access the guest RAM that needs to be migrated?) NB in the X64 PEI phase of OVMF, only the first 4GB of RAM is mapped, so the migration handler would have to build its own page table under this approach too. Thanks! Laszlo -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#72452): https://edk2.groups.io/g/devel/message/72452 Mute This Topic: https://groups.io/mt/81036365/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-