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

From: Avi Kivity
Date: Mon Mar 22 2010 - 16:53:56 EST


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.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/