I recently listened to a talk by a top performance engineer who mentioned that eBPF is the future of performance engineers.
He divides performance analysis tools into two categories.
- Traditional perf, ftrace etc.
- Observability with eBPF
As the title says, my question is,
What are the differences and connections between the intel performance tools(VTune/Advisor/Trace Analyzer and Collector) and other Linux performance tools(eBPF/perf/ftrace)？
Will intel performance tools introduce features of eBPF?
Thank you for your question and interest in performance analysis tools!
Almost all mentioned tools use different kernel interfaces and drivers to get performance data. One exception: VTune Profiler can use Perf*-based sampling if SEP driver is not available.
Uses perf_events interface. More details: https://perf.wiki.kernel.org/index.php/Main_Page
It is a tracing utility built directly into the Linux kernel; https://www.kernel.org/doc/Documentation/trace/ftrace.txt
For PMU event-based analysis, VTune Profiler uses Intel Sampling Driver (SEP) https://www.intel.com/content/www/us/en/develop/documentation/vtune-help/top/installation/sep-driver.html
If SEP driver is not available VTune Profiler uses driverless Linux* Perf*-based performance profiling: https://www.intel.com/content/www/us/en/develop/documentation/vtune-cookbook/top/configuration-recipes/profiling-hardware-without-sampling-drivers.html
For different types of analysis (perspectives) it uses different sources of performance data. https://www.intel.com/content/www/us/en/develop/documentation/advisor-user-guide/top.html
For GPU profiling VTune Profiler and Advisor use Intel GPU Drivers.
Is a tool for tracing MPI applications. It intercepts all MPI calls and generates trace files that can be analyzed with Intel(R) Trace Analyzer for understanding the application behavior. https://www.intel.com/content/www/us/en/develop/documentation/itc-user-and-reference-guide/top/introduction.html
Is a graphical tool that displays and analyzes event trace data generated by Trace Collector.
eBPF - a technology that can run programs in Linux kernel. It is used to safely and efficiently extend the capabilities of the kernel without requiring to change kernel source code or load kernel modules. You can find more info about these technologies at these links:
>> Will intel performance tools introduce features of eBPF?
Currently Intel Performance Tools don't use eBPF technology. But we work in this direction. Depending on demand from our strategic customers we will (or will not) implement support eBPF in our performance tools.
Please let me know if you have other questions.