But if we didn't get an interrupt in that time?
We can clear it a bit later, after local_irq_enable() in __vcpu_run(). However we need a nop instruction first because "sti" keeps interrupts
disabled for one more instruction.
IMHO, I think it is better to let kvm_guest_exit() empty (you can remove it, if
you want):
1st case:
- unset PF_VCPU in kvm_guest_exit(), all the tick is always for system time.
Guest time is always 0.
1st case and half:
- like 1st case but we move kvm_guest_exit() as you propose and the reason of
the interrupt is the tick interrupt. The tick is for guest time only. I think
the probability is very low.
2nd case:
- don't unset PF_VCPU in kvm_guest_exit(), all the tick is for guest time.