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

Avi Kivity
2007-08-20T14:08:23Z

Laurent Vivier wrote:
> Avi Kivity wrote:
>
>> Laurent Vivier wrote:
>>
>>> [PATCH 4/4] Modify KVM to update guest time accounting.
>>>
>>>
>>>
>>> Index: kvm/drivers/kvm/kvm.h
>>> ===================================================================
>>> --- kvm.orig/drivers/kvm/kvm.h 2007-08-20 13:23:53.000000000 +0200
>>> +++ kvm/drivers/kvm/kvm.h 2007-08-20 13:23:58.000000000 +0200
>>> @@ -589,6 +589,17 @@ void kvm_mmu_unload(struct kvm_vcpu *vcp
>>>
>>> int kvm_hypercall(struct kvm_vcpu *vcpu, struct kvm_run *run);
>>>
>>> +static inline void kvm_guest_enter(void)
>>> +{
>>> +#ifdef CONFIG_GUEST_ACCOUNTING
>>> + current->flags |= PF_VCPU;
>>> +#endif
>>>
>>>
>> Since you select GUEST_ACCOUNTING, the #ifdef is always true?
>>
>
> It is just to avoid error if we compile kvm module outside of the kernel, with
> kernel without support of guest accounting. Can be removed if you want.
>
>

Ah okay. We take care of the external module in
external-module-compat.h (in this case, we can #define PF_VCPU to 0 if
it is undefined).

>>> +}
>>> +
>>> +static inline void kvm_guest_exit(void)
>>> +{
>>>
>>>
>> Missing content?
>>
>
> No, empty function.
>
> It is just to introduce "symmetry" in code, the VCPU code begins with
> "kvm_guest_start()" and ends with "kvm_guest_exit()". And we have no operation
> to do in kvm_guest_exit() (the PF_VCPU is cleared by account_system_time()), so
> "empty function", removed by the optimizer (I hope).
>

But what if account_system_time() is not called (because we exited
before the timer interrupt hit)?

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