Perf supports dynamic tracing of probepoints, and probing multiple points simultaneously.
Perhaps I'm misunderstanding things, but I don't see how perf doesn't fit those two requirements. It does a lot more than just sampling
2. Perf is 14x slower with tracepoints, and is definitely not that low overhead with tons and tons of probe points.
See http://events.linuxfoundation.org/sites/events/files/slides/...
If XRay is able to trace millions of probe points with less overhead than uprobe + frontends, that's extremely impressive... But I just don't see any numbers so far that have said this is the case?
x-ray doesn't even make any attempt to optimize things well. If it did, it would be even lower overhead.
I'm honestly a bit stymied. I'm not sure why anyone would think a dynamic probing infrastructure that has to keep track of millions or billions of probes would ever go faster than something that has constant time and storage space by knowing what it is tracing and that it is tracing ahead of time.
The tradeoff is pretty simple. If you know what you want to probe ahead of time, and what the probes do, which is the case with x-ray, you can do it in fixed time and storage cost. You can never add or remove probes. Nothing has to worry about what probes exist.
If you want to be able to add or remove probes at any time, you now have a cost of having to keep track of all the probes that exist and possibly doing something different with them at different times and ...
From reading it, I believe no other tool is both (1) non-sampled and (2) supports instrumenting all functions simultaneously. (At least none of the other comments in this thread point at tools that do this.)