From 8dfbdae17cb4ceff1dbe42e5c75486df4637ecc5 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Fri, 14 Mar 2025 21:59:07 +0200 Subject: switch to inferno flamegraphs --- Makefile | 8 +- README.md | 8 + assets/ior-by-count-flamegraph.svg | 7591 +++--------------------------------- 3 files changed, 486 insertions(+), 7121 deletions(-) diff --git a/Makefile b/Makefile index 99c2210..33d3b21 100644 --- a/Makefile +++ b/Makefile @@ -36,16 +36,16 @@ world: clean generate all .PHONY: flames flames: - perl ~/git/FlameGraph/flamegraph.pl ior-by-path-count-flamegraph.collapsed \ + inferno-flamegraph < ior-by-path-count-flamegraph.collapsed \ --title "I/O Syscall Count" --nametype Path --hash \ > ior-by-path-count-flamegraph.svg; \ - perl ~/git/FlameGraph/flamegraph.pl ior-by-path-duration-flamegraph.collapsed \ + inferno-flamegraph < ior-by-path-duration-flamegraph.collapsed \ --title "I/O Syscall Durations" --nametype Path --hash --countname Nanoseconds \ > ior-by-path-duration-flamegraph.svg; \ - perl ~/git/FlameGraph/flamegraph.pl ior-by-syscall-count-flamegraph.collapsed \ + inferno-flamegraph < ior-by-syscall-count-flamegraph.collapsed \ --title "I/O Syscall Count" --nametype Path --hash \ > ior-by-syscall-count-flamegraph.svg; \ - perl ~/git/FlameGraph/flamegraph.pl ior-by-syscall-duration-flamegraph.collapsed \ + inferno-flamegraph < ior-by-syscall-duration-flamegraph.collapsed \ --title "I/O Syscall Durations" --nametype Path --hash --countname Nanoseconds \ > ior-by-syscall-duration-flamegraph.svg; \ diff --git a/README.md b/README.md index 6ba7db5..f8d17cd 100644 --- a/README.md +++ b/README.md @@ -42,3 +42,11 @@ make sudo cp -v ./libelf/libelf.a /usr/lib64/ ``` +## Inferno Flamegraphs + +We are using Inferno Flamegraphs: https://github.com/jonhoo/inferno + +```sh +cargo install inferno +``` + diff --git a/assets/ior-by-count-flamegraph.svg b/assets/ior-by-count-flamegraph.svg index a565939..d5b4d05 100644 --- a/assets/ior-by-count-flamegraph.svg +++ b/assets/ior-by-count-flamegraph.svg @@ -1,7134 +1,491 @@ - - - - - - - - - - - - - - -I/O Syscall Count - -Reset Zoom -Search -ic - - - -syscall`enter_newfstatat (219 samples, 0.02%) - - - -/24.08 (116 samples, 0.01%) - - - -syscall`enter_read (136 samples, 0.01%) - - - -/fd (148 samples, 0.01%) - - - -syscall`enter_fcntl (1,106 samples, 0.09%) - - - -syscall`enter_close (245 samples, 0.02%) - - - -syscall`enter_fcntl (356 samples, 0.03%) - - - -/a1 (287 samples, 0.02%) - - - -/9b (240 samples, 0.02%) - - - -syscall`enter_write (435 samples, 0.04%) - - - -syscall`enter_newfstatat (250 samples, 0.02%) - - - -/telemetry (1,842 samples, 0.15%) - - - -/fd (2,472 samples, 0.20%) - - - -syscall`enter_openat (282 samples, 0.02%) - - - -syscall`enter_newfstatat (263 samples, 0.02%) - - - -/05 (283 samples, 0.02%) - - - -syscall`enter_newfstatat (236 samples, 0.02%) - - - -syscall`enter_statx (411 samples, 0.03%) - - - -syscall`enter_read (108 samples, 0.01%) - - - -/fd (264 samples, 0.02%) - - - -syscall`enter_newfstatat (2,411 samples, 0.20%) - - - -syscall`enter_newfstatat (139 samples, 0.01%) - - - -/0f (303 samples, 0.02%) - - - -/fe (248 samples, 0.02%) - - - -/cpu (220 samples, 0.02%) - - - -syscall`enter_close (276 samples, 0.02%) - - - -syscall`enter_newfstatat (228 samples, 0.02%) - - - -syscall`enter_statx (1,874 samples, 0.15%) - - - -syscall`enter_close (201 samples, 0.02%) - - - -/1c (259 samples, 0.02%) - - - -/user.slice (65,871 samples, 5.40%) -/user... - - -syscall`enter_ioctl (286 samples, 0.02%) - - - -syscall`enter_readlinkat (161 samples, 0.01%) - - - -syscall`enter_readlinkat (120 samples, 0.01%) - - - -/1d (239 samples, 0.02%) - - - -/5.9 (437 samples, 0.04%) - - - -/02 (240 samples, 0.02%) - - - -/flatpak (5,162 samples, 0.42%) - - - -/org.kde.Platform.Locale (136 samples, 0.01%) - - - -/23.08 (172 samples, 0.01%) - - - -/app-dbus\x2d:1.2\x2dorg.freedesktop.problems.applet.slice (1,776 samples, 0.15%) - - - -/252750 (439 samples, 0.04%) - - - -syscall`enter_write (899 samples, 0.07%) - - - -/user-0.slice (1,702 samples, 0.14%) - - - -syscall`enter_newfstatat (229 samples, 0.02%) - - - -syscall`enter_openat (288 samples, 0.02%) - - - -/gconv (316 samples, 0.03%) - - - -syscall`enter_openat (129 samples, 0.01%) - - - -/repodata (20,620 samples, 1.69%) - - - -/dnf (13,724 samples, 1.12%) - - - -/bin (6,742 samples, 0.55%) - - - -syscall`enter_newfstat (815 samples, 0.07%) - - - -/systemd-hostnamed.service (140 samples, 0.01%) - - - -syscall`enter_read (572 samples, 0.05%) - - - -/d1 (265 samples, 0.02%) - - - -/5023 (164 samples, 0.01%) - - - -/c2 (223 samples, 0.02%) - - - -syscall`enter_newfstatat (204 samples, 0.02%) - - - -syscall`enter_openat (137 samples, 0.01%) - - - -syscall`enter_openat (288 samples, 0.02%) - - - -/app-dbus\x2d:1.2\x2dorg.gnome.Shell.Screencast.slice (1,741 samples, 0.14%) - - - -/f2 (243 samples, 0.02%) - - - -syscall`enter_readlinkat (20,169 samples, 1.65%) - - - -syscall`enter_newfstatat (230 samples, 0.02%) - - - -syscall`enter_close (244 samples, 0.02%) - - - -/1656149 (113 samples, 0.01%) - - - -/41 (222 samples, 0.02%) - - - -/queries (1,326 samples, 0.11%) - - - -syscall`enter_newfstatat (226 samples, 0.02%) - - - -syscall`enter_readlinkat (2,472 samples, 0.20%) - - - -/6f (256 samples, 0.02%) - - - -/x86_64 (172 samples, 0.01%) - - - -syscall`enter_newfstatat (203 samples, 0.02%) - - - -syscall`enter_ioctl (282 samples, 0.02%) - - - -syscall`enter_read (574 samples, 0.05%) - - - -syscall`enter_read (569 samples, 0.05%) - - - -/icons (961 samples, 0.08%) - - - -/functions (421 samples, 0.03%) - - - -syscall`enter_newfstatat (289 samples, 0.02%) - - - -/fd (132 samples, 0.01%) - - - -syscall`enter_newfstatat (222 samples, 0.02%) - - - -syscall`enter_newfstat (336 samples, 0.03%) - - - -syscall`enter_newfstatat (244 samples, 0.02%) - - - -syscall`enter_newfstatat (219 samples, 0.02%) - - - -/6018 (8,181 samples, 0.67%) - - - -/1532717 (354 samples, 0.03%) - - - -/4744 (116 samples, 0.01%) - - - -syscall`enter_fcntl (136 samples, 0.01%) - - - -/appstream (212 samples, 0.02%) - - - -syscall`enter_getdents64 (107 samples, 0.01%) - - - -/23.08 (150 samples, 0.01%) - - - -syscall`enter_close (891 samples, 0.07%) - - - -syscall`enter_newfstat (189 samples, 0.02%) - - - -syscall`enter_newfstatat (282 samples, 0.02%) - - - -syscall`enter_newfstatat (104 samples, 0.01%) - - - -syscall`enter_newfstat (201 samples, 0.02%) - - - -/4d (186 samples, 0.02%) - - - -syscall`enter_newfstatat (178 samples, 0.01%) - - - -syscall`enter_openat (283 samples, 0.02%) - - - -/x86_64 (242 samples, 0.02%) - - - -syscall`enter_newfstatat (348 samples, 0.03%) - - - -/gopls (64,648 samples, 5.30%) -/gopls - - -syscall`enter_pread64 (10,437 samples, 0.86%) - - - -/.task (254 samples, 0.02%) - - - -syscall`enter_close (1,809 samples, 0.15%) - - - -/0b (198 samples, 0.02%) - - - -/bits (119 samples, 0.01%) - - - -syscall`enter_newfstatat (255 samples, 0.02%) - - - -/site-packages (319 samples, 0.03%) - - - -dev (38,470 samples, 3.15%) -dev - - -syscall`enter_newfstatat (231 samples, 0.02%) - - - -/profile.d (302 samples, 0.02%) - - - -usr (170,671 samples, 13.99%) -usr - - -/org.gnome.Platform.Locale (293 samples, 0.02%) - - - -syscall`enter_newfstatat (262 samples, 0.02%) - - - -/runtime (9,225 samples, 0.76%) - - - -syscall`enter_read (720 samples, 0.06%) - - - -/x86_64 (136 samples, 0.01%) - - - -syscall`enter_newfstatat (135 samples, 0.01%) - - - -/f3 (199 samples, 0.02%) - - - -syscall`enter_read (569 samples, 0.05%) - - - -/app-dbus\x2d:1.21\x2dorg.a11y.atspi.Registry.slice (1,739 samples, 0.14%) - - - -syscall`enter_ioctl (288 samples, 0.02%) - - - -/2d (211 samples, 0.02%) - - - -syscall`enter_readlinkat (131 samples, 0.01%) - - - -syscall`enter_fcntl (582 samples, 0.05%) - - - -syscall`enter_close (125 samples, 0.01%) - - - -/68 (224 samples, 0.02%) - - - -syscall`enter_read (564 samples, 0.05%) - - - -/app-dbus\x2d:1.2\x2dcom.intel.dleyna\x5cx2drenderer.slice (1,776 samples, 0.15%) - - - -/Unsplash (126 samples, 0.01%) - - - -syscall`enter_openat (244 samples, 0.02%) - - - -/.ruby-lsp (117 samples, 0.01%) - - - -/app-dbus\x2d:1.2\x2dorg.gnome.Nautilus.slice (1,768 samples, 0.14%) - - - -/2e (235 samples, 0.02%) - - - -syscall`enter_newfstatat (315 samples, 0.03%) - - - -/repodata (98,940 samples, 8.11%) -/repodata - - -syscall`enter_io_uring_enter (1,601 samples, 0.13%) - - - -syscall`enter_readlinkat (153 samples, 0.01%) - - - -syscall`enter_close (288 samples, 0.02%) - - - -syscall`enter_newfstatat (3,316 samples, 0.27%) - - - -/ea (249 samples, 0.02%) - - - -syscall`enter_getdents64 (7,484 samples, 0.61%) - - - -/python3.13 (1,435 samples, 0.12%) - - - -syscall`enter_read (564 samples, 0.05%) - - - -syscall`enter_ioctl (282 samples, 0.02%) - - - -/07 (254 samples, 0.02%) - - - -/applications (1,270 samples, 0.10%) - - - -syscall`enter_openat (288 samples, 0.02%) - - - -syscall`enter_readlinkat (13,695 samples, 1.12%) - - - -/b5 (225 samples, 0.02%) - - - -syscall`enter_newfstatat (265 samples, 0.02%) - - - -internalgenerated (264 samples, 0.02%) - - - -syscall`enter_newfstat (329 samples, 0.03%) - - - -syscall`enter_read (135 samples, 0.01%) - - - -/92 (269 samples, 0.02%) - - - -syscall`enter_newfstat (336 samples, 0.03%) - - - -/85 (212 samples, 0.02%) - - - -syscall`enter_read (572 samples, 0.05%) - - - -syscall`enter_newfstat (336 samples, 0.03%) - - - -/ssh (124 samples, 0.01%) - - - -bin (136 samples, 0.01%) - - - -/01 (243 samples, 0.02%) - - - -/app (125 samples, 0.01%) - - - -syscall`enter_statx (164 samples, 0.01%) - - - -syscall`enter_newfstat (337 samples, 0.03%) - - - -syscall`enter_openat (141 samples, 0.01%) - - - -/256811 (25,144 samples, 2.06%) -