STRUCT CALL_PATH(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct call_path(9) β€” Kernel API Manual, and yes bestie we're getting into it 🫢

🌸 NAME 🌸

struct call_path is literally a node in the list of calls leading to a function call. That's it, that's the whole name, and honestly? iconic. πŸ’–

✨ SYNOPSIS ✨

Okay so here's the struct in all its main-character glory πŸ‘‘:

       struct call_path {
           struct call_path *parent;
           struct symbol *sym;
           u64 ip;
           u64 db_id;
           bool in_kernel;
           struct rb_node rb_node;
           struct rb_root children;
        };

No cap, every field is doing its little job. πŸŽ€

πŸŽ€ Members πŸŽ€

  • parent β€” call path to the parent function call. It's giving "who brought me here" energy. 🌈
  • sym β€” symbol of function called. The main character of this particular call, lowkey. ⭐
  • ip β€” only if sym is null, the ip of the function. Periodt. πŸ’…
  • db_id β€” id used for db-export. It's the little ID tag for the db-export vibe. 🏷️
  • in_kernel β€” whether the function is in the kernel. Yes bestie, kernel-space check. 🧚
  • rb_node β€” node in parent's tree of called functions. Tree gossip, but make it red-black. 🌳
  • children β€” tree of call paths of functions called. The descendants! The next generation! Obsessed. πŸ¦‹

πŸ¦‹ Description πŸ¦‹

In combination with the call_return structure, the call_path structure defines a context-sensitive call-graph. That's the vibe: together they're lowkey building the whole context-sensitive call-graph, and it ate 😭πŸ”₯

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./tools/perf/util/call-path.h β€” go read the source, bestie, it's right there. πŸ’œ
  • struct call_path_root(9) β€” the cross-ref you want next, fr fr. πŸ¦‹

xoxo, your Unix bestie πŸ’– β€” source/version ./tools/perf/util, dated October 2026, signing off for struct call_path(9) ✨

πŸ“¦ where this page comes from