User: Password:
Subscribe / Log in / New account

Merging the kvm tool

Merging the kvm tool

Posted Aug 25, 2011 14:37 UTC (Thu) by deater (subscriber, #11746)
In reply to: Merging the kvm tool by mingo
Parent article: Merging the kvm tool

One thing not addressed is the stable-ABI issue.

External tools trying to use the perf_event ABI tend to struggle, as the perf_event developers are primarily interested in perf working. Breaks in the ABI (and there have been many, though most are minor) are not deemed important if you don't catch them fast enough. And since the perf_event developers never feel the need to use the ABI from outside the kernel tree, it ends up meaning that userspace developers need to be running bleeding-edge kernels at all times or risk their tools being broken.

Kernel and userspace development are very different processes, and if your code isn't in the kernel tree you face an extreme disadvantage.

(Log in to post comments)

Merging the kvm tool

Posted Aug 25, 2011 14:45 UTC (Thu) by deater (subscriber, #11746) [Link]

To add an example: the whole OFFCORE_EVENTS issue on Nehalem processors with perf.

Currently it is impossible for external tools to detect if this feature is enabled or not. If you try to use it, sometimes it will return 0, sometimes not (depending which generalized event you've used due to a buggy leak of MSR state). This bug has been there since 2.6.39. What should happen is an error code returned.

If RAW OFFCORE_EVENT support is ever added, then there is no possible way for an external tool to detect this properly, as correct behavior is indistinguishable from the current buggy disabling.

Does the perf tool care? No. Why? Because when it gets support it will happen at the same time that the kernel is updated, so as long as kernel/perf are updated at the same time you'll never notice. perf never has to worry about backward compatability, which is a bit of an unfair advantage.

Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds