Netflix / flamescope

FlameScope is a visualization tool for exploring different time ranges as Flame Graphs.
Apache License 2.0
3k stars 168 forks source link

Missing samples in what flamescope displays #143

Closed andreamerello closed 2 years ago

andreamerello commented 2 years ago

I'm producing perf traces on a quad-core ARM64 system, and I'm looking at them with flamescope. I've noticed it produces what it apparently seems an incorrect (incomplete) flamegraph to me.

By looking at the same data with

I can see that some time is spent to serve my DMA IRQ tasklet (e.g. xilinx_dma_do_tasklet() function), but this seems completely missing from flamescope output.

flamegraph flamescope

Proportions of the swapper thing vs the other stuff in the two graphs are also clearly different.

I attach my perf file out.perf.gz

PS. I've also just noted that the HPU_0xffffffc01 label is truncated in flamescope output

spiermar commented 2 years ago

I'm finally getting back to the project and can take a look after catching up with a few other issues. Generally these kind of issues are related to the pixel filter, set to hide anything smaller than 5px, but I need to take a look first.

spiermar commented 2 years ago

Problem is in the idle_regex. https://github.com/Netflix/flamescope/blob/74f75537558f165ea67eb8ced700e9f2d707fd6e/app/util/regexp.py#L79-L82

It's filtering a few samples more than the original Perl script. Duplicate of https://github.com/Netflix/flamescope/issues/83

The HPU_ truncation is caused by the frame name "cleaner", that removes parts of frame name to improve the ability to merge frames. If this is a problem for you, please open a ticket asking for an option to disable it in the UI, or submit a PR. Should be simple to implement.