In similar spirit to #115 but for x86.
A VM Exit should be triggered when the guest kernel executes HLT, which stops VCPU resumption until a virtual interrupt is asserted to yield the physical CPU for other native protection domains.
This isn't really a huge problem since the VCPU should always be at the lowest priority exclusively, which allows seL4's scheduler to preempt it for other ready protection domains. It only starts to become a problem if you have > 1 VM on 1 physical CPU
This is easy to implement but one wrinkle is that the VMX preemption timer will stop, which mean that we will need an external timer driver to drive the guest's time while the VCPU is stopped. So guest_time.c will need to be able to "migrate" between 2 different clocksources.
In similar spirit to #115 but for x86.
A VM Exit should be triggered when the guest kernel executes HLT, which stops VCPU resumption until a virtual interrupt is asserted to yield the physical CPU for other native protection domains.
This isn't really a huge problem since the VCPU should always be at the lowest priority exclusively, which allows seL4's scheduler to preempt it for other ready protection domains. It only starts to become a problem if you have > 1 VM on 1 physical CPU
This is easy to implement but one wrinkle is that the VMX preemption timer will stop, which mean that we will need an external timer driver to drive the guest's time while the VCPU is stopped. So
guest_time.cwill need to be able to "migrate" between 2 different clocksources.