Avi Kivity wrote:
Laurent Vivier wrote:
If the guest is executing for 10% of the time, the probability isBut if we didn't get an interrupt in that time?IMHO, I think it is better to let kvm_guest_exit() empty (you can
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.
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.
exactly 10%, no?
I think you know that better than me.
But is there homogeneity in probability ?
I mean, if the guest has a lot I/O, it is interrupted by them and the
probability to be interrupted by a tick is lower than the time passed in the VCPU ?
2nd case:But then even execution in ->handle_exit() is accounted as guest time,
- don't unset PF_VCPU in kvm_guest_exit(), all the tick is for guest
time.
which is wrong.
System time and User time are wrong too as the tick is accounted to the side
where it appears, even if CPU has executed code from the other side in a
sub-part of the tick. It's not a good argument.