* Elliot Berman <quic_eberman@xxxxxxxxxxx> [2024-02-22 15:16:38]: > Gunyah allows vCPUs that are configured as proxy-scheduled to be scheduled by > another virtual machine (host) that holds capabilities to those vCPUs with > suitable rights. > > Gunyah also supports configuring regions of a proxy-scheduled VM's address > space to be virtualized by the host VM. This permits a host VMM to emulate MMIO > devices in the proxy-scheduled VM. > > vCPUs are presented to the host as a Gunyah resource and represented to > userspace as a Gunyah VM function. > > Creating the vcpu function on the VM will create a file descriptor that: > - can handle an ioctl to run the vCPU. When called, Gunyah will directly > context-switch to the selected vCPU and run it until one of the following > events occurs: > * the host vcpu's time slice ends > * the host vcpu receives an interrupt or would have been pre-empted > by the hypervisor > * a fault occurs in the proxy-scheduled vcpu > * a power management event, such as idle or cpu-off call in the vcpu > - can be mmap'd to share the gunyah_vcpu_run structure with userspace. This > allows the vcpu_run result codes to be accessed, and for arguments to > vcpu_run to be passed, e.g. for resuming the vcpu when handling certain fault > and exit cases. > > Co-developed-by: Prakruthi Deepak Heragu <quic_pheragu@xxxxxxxxxxx> > Signed-off-by: Prakruthi Deepak Heragu <quic_pheragu@xxxxxxxxxxx> > Signed-off-by: Elliot Berman <quic_eberman@xxxxxxxxxxx> LGTM Reviewed-by: Srivatsa Vaddagiri <quic_svaddagi@xxxxxxxxxxx> - vatsa