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

Ingo Molnar
2010-03-22T20:46:50Z

* Avi Kivity <avi@redhat.com> wrote:

> On 03/22/2010 09:27 PM, Ingo Molnar wrote:
> >
> >> If your position basically boils down to, we can't trust userspace
> >> and we can always trust the kernel, I want to eliminate any
> >> userspace path, then I can't really help you out.
> >
> > Why would you want to 'help me out'? I can tell a good solution from a bad
> > one just fine.
>
> You are basically making a kernel implementation a requirement, instead of
> something that follows from the requirement.

No, i'm not.

> > 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.

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

- 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.

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.

Thanks,

Ingo