i915_perf_register(9)
π 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms