PERF-CHECK(1)

πŸ’… PERF-CHECK(1) β€” the perf-check girlies' guide πŸŽ€

okay so bestie, this is perf-check, and it lives in the perf Manual. it's basically the vibe check for your perf build β€” it tells you whether a feature is even in there or not. no cap, it's the most useful little guy.


✨ SYNOPSIS ✨

perf check [<options>]
perf check {feature <feature_list>} [<options>]

🌸 DESCRIPTION 🌸

So like, if you run perf check with no subcommands at all? it literally just prints the command usage to the standard output. that's it. that's the whole personality. 🫢

But the moment you bring feature into the chat, things get iconic β€” the status of the feature gets printed on standard output (unless you also passed -q, we'll get to her), i.e. whether it's compiled-in/built-in or not.

And here's the main character detail: perf check feature returns with exit status 0 if the feature is built-in, otherwise it returns with exit status 1. so your scripts can just ask and get a yes/no. slay. πŸ’…


πŸ¦‹ SUBCOMMANDS πŸ¦‹

feature

Prints whether feature(s) is compiled-in or not, and also returns with an exit status of 0 if the passed feature(s) are compiled-in, else 1.

It expects a feature list as an argument. It can be a single feature name/macro, or multiple features can also be passed as a comma-separated list β€” in which case the exit status will be 0 only if all of the passed features are compiled-in. (all of them, bestie. every single one. no partial credit πŸ™ˆ)

The feature names/macros are case-insensitive. iykyk, you can yell HAVE_LIBTRACEEVENT or whisper libtraceevent, both work.

Example Usage:

perf check feature libtraceevent
perf check feature HAVE_LIBTRACEEVENT
perf check feature libtraceevent,bpf

Supported feature names/macro:

  • aio / HAVE_AIO_SUPPORT
  • bpf / HAVE_LIBBPF_SUPPORT
  • bpf_skeletons / HAVE_BPF_SKEL
  • debuginfod / HAVE_DEBUGINFOD_SUPPORT
  • dwarf / HAVE_LIBDW_SUPPORT
  • dwarf_getlocations / HAVE_LIBDW_SUPPORT
  • dwarf-unwind / HAVE_DWARF_UNWIND_SUPPORT
  • libbfd / HAVE_LIBBFD_SUPPORT
  • libbpf-strings / HAVE_LIBBPF_STRINGS_SUPPORT
  • libcapstone / HAVE_LIBCAPSTONE_SUPPORT
  • libdw-dwarf-unwind / HAVE_LIBDW_SUPPORT
  • libelf / HAVE_LIBELF_SUPPORT
  • libLLVM / HAVE_LIBLLVM_SUPPORT
  • libnuma / HAVE_LIBNUMA_SUPPORT
  • libopencsd / HAVE_CSTRACE_SUPPORT
  • libperl / HAVE_LIBPERL_SUPPORT
  • libpfm4 / HAVE_LIBPFM
  • libpython / HAVE_LIBPYTHON_SUPPORT
  • libslang / HAVE_SLANG_SUPPORT
  • libtraceevent / HAVE_LIBTRACEEVENT
  • libunwind / HAVE_LIBUNWIND_SUPPORT
  • lzma / HAVE_LZMA_SUPPORT
  • numa_num_possible_cpus / HAVE_LIBNUMA_SUPPORT
  • zlib / HAVE_ZLIB_SUPPORT
  • zstd / HAVE_ZSTD_SUPPORT

πŸ’– OPTIONS πŸ’–

  • -q, --quiet β€” Do not print any messages or warnings.

This can be used along with subcommands such as 'perf check feature' to hide unnecessary output in test scripts, eg. 'perf check feature --quiet libtraceevent'. lowkey the bestie for CI, fr fr β€” silent but somehow still communicating. 🀫


heads up bestie: without a subcommand you get usage text and that's the whole show β€” the exit-status magic only happens with the feature subcommand. and -q only hides the printing, the exit status still does its thing. πŸ’€ (that's the good part)

okay that's the whole page, you're now officially certified in perf-check 🧚✨ go check some features, queen πŸ‘‘

sign-off moment πŸ’Œ: this page comes from perf, dated 10/31/2026 β€” perf 10/31/2026 PERF-CHECK(1), periodt. 🌈

πŸ“¦ where this page comes from