Hi Quinn,
Thank you for clarifying the difference between Virtualization.framework and Hypervisor.framework, and for confirming that another userspace process cannot retain or acquire the original vCPU execution resources after their owner terminates.
I understand that QEMU-specific thread and process management is our responsibility, and we're examining that separately.
I have one remaining question about Hypervisor.framework itself, independent of QEMU's implementation:
When the process owning a Hypervisor.framework VM has actually terminated, and its supervising parent obtains terminal status through waitpid() (WIFEXITED or WIFSIGNALED), is it a supported guarantee that every vCPU executed by that process has already ceased executing guest instructions and cannot resume?
This includes abnormal process termination while a thread was executing hv_vcpu_run().
I'm deliberately distinguishing irreversible cessation of guest execution from complete VM resource reclamation. I am not asking whether sending SIGKILL guarantees immediate termination, only what is established once actual process termination has been confirmed.
If Hypervisor.framework provides no documented guarantee for that ordering, confirmation of that limitation would also be helpful.
Thanks again for your guidance.
Gary
Topic:
App & System Services
SubTopic:
Core OS
Tags: