Re: [kvm-devel] [PATCH 0/2][KVM] guest time accounting

From: Laurent Vivier
Date: Mon Aug 13 2007 - 12:07:44 EST


Avi Kivity wrote:
> Laurent Vivier wrote:
>> Christian Borntraeger wrote:
>>
>>> Am Freitag, 10. August 2007 schrieb Laurent Vivier:
>>>
>>>> The aim of these two patches is to measure the CPU time used by a
>>>> virtual
>>>> machine. All comments are welcome... I'm not sure it's the good way
>>>> to do
>>> that.
>>>
>>> I did something similar for or s390guest prototype, that Carsten
>>> posted in May. I decided to account guest time to the user process
>>> instead of adding a new field to avoid hazzle with old top. As you
>>> can read in the patch comment, I personally prefer a new field if we
>>> can get one.
>>>
>>> My implementation uses a similar mechanism like hard and softirq. So
>>> I have an sie_enter an sie_exit and a task_is_in_sie function - like
>>> irq_enter and irq_exit. The main difference is based on the fact,
>>> that s390 has precise accouting for irq, steal, user and system time,
>>> and therefore my patch is based on architecture specifc code using
>>> CONFIG_VIRT_CPU_ACCOUNT.
>>> In general my patch has the same idea as your patch, so I am going to
>>> review your patch and see if it would fit for s390.
>>>
>>> For reference this is the (never posted) old patch for our
>>> virtualisation prototype. It wont work with kvm but it gives you the
>>> idea what we had in mind on s390.
>>>
>>>
>>
>> thank you for your comment.
>>
>> As virtualization becomes very popular, perhaps we should implement
>> something
>> which could be used by all linux supported architectures ?
>> (yes, I know it's non-sense for archs like m68k...)
>> But my [PATCH 1/2] can be a good start (adding "guest" in cpustat)
>> As guest accounting is hw dependent, I think we should add a hook in the
>> accounting functions.
>>
>
> Isn't PF_VM exactly such a hook? All the hypervisor needs to do is to
> set/unset it correctly?

In fact, no.

PF_VM is used to know we have entered a virtual CPU (the hypervisor set it, the
scheduler unset it on accounting)

I mean a hook in account_system_time() to call a function arch-dependent to
compute the guest time (and modify the system/user time accordingly) if needed.

If fact what I find annoying in my patch is it adds to guest time and user time
some system time. Perhaps you could have a look to the second patch I sent.

Regards,
Laurent
--
------------- Laurent.Vivier@xxxxxxxx --------------
"Software is hard" - Donald Knuth

Attachment: signature.asc
Description: OpenPGP digital signature