Re: [RFC] Unify KVM kernel-space and user-space code into a single project

Avi Kivity
2010-03-22T20:53:26Z

On 03/22/2010 10:46 PM, Ingo Molnar wrote:
>
>>> You should instead read the long list of disadvantages above, invert them
>>> and list then as advantages for the kernel-based vcpu enumeration
>>> solution, apply common sense and go admit to yourself that indeed in this
>>> situation a kernel provided enumeration of vcpu contexts is the most
>>> robust solution.
>>>
>> Having qemu enumerate guests one way or another is not a good idea IMO since
>> it is focused on one guest and doesn't have a system-wide entity. A
>> userspace system-wide entity will work just as well as kernel
>> implementation, without its disadvantages.
>>
> A system-wide user-space entity only solves one problem out of the 4 i listed,
> still leaving the other 3:
>
> - Those special files can get corrupted, mis-setup, get out of sync, or can
> be hard to discover.
>

That's a hard requirement anyway. If it happens, we get massive data
loss. Way more troubling than 'perf kvm top' doesn't work. So consider
it fulfilled.

> - Apps might start KVM vcpu instances without adhering to the
> system-wide access method.
>

Then you don't get their symbol tables. That happens anyway if the
symbol server is not installed, not running, handing out fake data. So
we have to deal with that anyway.

> - There is no guarantee for the system-wide process to reply to a request -
> while the kernel can always guarantee an enumeration result. I dont want
> 'perf kvm' to hang or misbehave just because the system-wide entity has
> hung.
>

When you press a key there is no guarantee no component along the way
will time out.

> Really, i think i have to give up and not try to convince you guys about this
> anymore - i dont think you are arguing constructively anymore and i dont want
> yet another pointless flamewar about this.
>
> Please consider 'perf kvm' scrapped indefinitely, due to lack of robust KVM
> instrumentation features: due to lack of robust+universal vcpu/guest
> enumeration and due to lack of robust+universal symbol access on the KVM side.
> It was a really promising feature IMO and i invested two days of arguments
> into it trying to find a workable solution, but it was not to be.
>

I am not going to push libvirt or a subset thereof into the kernel for
'perf kvm'.

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.