Re: [RESEND 2][PATCH 4/4] Modify KVM to update guest time accounting.

Avi Kivity
2007-10-15T11:16:19Z

Laurent Vivier wrote:
> Avi Kivity wrote:
>
>> Ingo Molnar wrote:
>>
>>> * Avi Kivity <avi@qumranet.com> wrote:
>>>
>>>
>>>
>>>> This bit can go; for the external module I can add it back in
>>>> external-module-compat.h. No need to pollute mainline with backward
>>>> compatibility stuff.
>>>>
>>>>
>>> hm:
>>>
>>> static inline void kvm_guest_enter(void)
>>> {
>>> current->flags |= PF_VCPU;
>>> }
>>>
>>> static inline void kvm_guest_exit(void)
>>> {
>>> }
>>>
>>> shouldnt PF_VCPU be cleared in kvm_guest_exit()?
>>>
>>>
>> IIRC the accounting code clears it, but yes, it may not have been called
>> at all, so clearing it here is needed.
>>
>>
>
> No, It must not be cleared here because we can't enter in the accounting code
> between kvm_guest_enter(void) and kvm_guest_exit(void).
>
>

Right.

> This is why the accounting code clears it.
>

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.

--
error compiling committee.c: too many arguments to function