i915_perf_register(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… i915_perf_register β€” the official bestie manual πŸ’…

Okay so this is the i915_perf_register(9) page from the Kernel API Manual, and honestly? It's a little guy with one job and it does it slayfully. Let's get into it ✨


🌸 NAME 🌸

i915_perf_register β€” literally just exposes i915-perf to userspace. That's it. That's the whole vibe. πŸŽ€


✨ SYNOPSIS ✨

void i915_perf_register (struct drm_i915_private *i915 );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • i915 β€” the i915 device instance. Like, the actual device we're doing all this for. Your main character device, if you will. πŸ‘‘

πŸ’– DESCRIPTION πŸ’–

So here's the tea: when you call this, the OA metric sets get advertised under a sysfs metrics/ directory. Why does that matter? Because userspace can then enumerate all the valid IDs β€” the ones it's actually allowed to use to open an i915-perf stream. No cap, that's the whole flex. It's giving "putting the menu on the fridge so everyone knows what's for dinner" energy πŸ“

In particular: OA metric sets β†’ advertised β†’ under sysfs metrics/ directory β†’ userspace enumerates valid IDs β†’ uses them to open an i915-perf stream. Iconic behavior, truly. πŸ’…


πŸ”₯ SEE ALSO πŸ”₯

Obsessed with a thorough cross-reference list? Same. Here's everyone invited to the group chat, and yes, the kernel file ./drivers/gpu/drm/i915/i915_perf.c is the group admin 🫢

i915 Perf Overview(9), i915 Perf History and Comparison with Core Perf(9),
OA Tail Pointer Race(9), struct perf_open_properties(9),
oa_buffer_check_unlocked(9), append_oa_status(9), append_oa_sample(9),
gen8_append_oa_reports(9), gen8_oa_read(9), gen7_append_oa_reports(9),
gen7_oa_read(9), i915_oa_wait_unlocked(9), i915_oa_poll_wait(9),
i915_oa_read(9), oa_get_render_ctx_id(9), oa_put_render_ctx_id(9),
i915_oa_stream_enable(9), i915_oa_stream_disable(9),
i915_oa_stream_init(9), i915_perf_read(9), i915_perf_poll_locked(9),
i915_perf_poll(9), i915_perf_enable_locked(9),
i915_perf_disable_locked(9), i915_perf_ioctl_locked(9),
i915_perf_ioctl(9), i915_perf_destroy_locked(9), i915_perf_release(9),
i915_perf_open_ioctl_locked(9), read_properties_unlocked(9),
i915_perf_open_ioctl(9), i915_perf_unregister(9),
i915_perf_add_config_ioctl(9), i915_perf_remove_config_ioctl(9),
i915_perf_init(9), i915_perf_fini(9), i915_perf_ioctl_version(9)

Like, that's the whole friend group right there. Every single one. Go read them, bestie, they're all part of the lore πŸ“š


Lowkey a reminder: all of the above cross-references and the kernel file path ./drivers/gpu/drm/i915/i915_perf.c are straight from the original, so don't come for me if you find a new one in a newer kernel β€” this is the October 2026 edition, periodt. πŸ’€

And that's the page!! This was i915_perf_register(9) from the Kernel API Manual, living in ./drivers/gpu/drm/i915, dated October 2026, version as printed in the footer of the original. Stay hydrated, read your kernel docs, and slay responsibly πŸ’œπŸŒˆ

πŸ“¦ where this page comes from