A system-wide user-space entity only solves one problem out of the 4 i listed,You should instead read the long list of disadvantages above, invert themHaving qemu enumerate guests one way or another is not a good idea IMO since
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.
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.
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.