i915_perf_add_config_ioctl(9)
π i915_perf_add_config_ioctl(9) π
okay so bestie, welcome to the Kernel API Manual β this is an entry all about i915_perf_add_config_ioctl, and it's genuinely a whole moment. let's get into it π
β¨ NAME β¨
i915_perf_add_config_ioctl β the DRM ioctl() that lets userspace add a brand new OA config. that's it, that's the vibe π¦
πΈ SYNOPSIS πΈ
int i915_perf_add_config_ioctl (struct drm_device *dev , void *data ,
struct drm_file *file );
π§ ARGUMENTS π§
devβ the drm device. the main character of this whole operation, lowkey πdataβ the ioctl data. it's a pointer tostruct drm_i915_perf_oa_config, and it gets copied from userspace unvalidated β so like, it's giving "we haven't done a vibe check on this yet" πfileβ the drm file. hi bestie π«Ά
π DESCRIPTION π
so what this bad boy does: it validates the submitted OA register, and then saves it into a new OA config. and that new config can then be used for programming the OA unit and its NOA network. the way that it validates first before saving anything? ate. periodt β¨
π₯ RETURN π₯
on success you get a new allocated config number β and you're gonna use that number later with the perf open ioctl, iykyk π«. on failure? a negative error code. sad but true π
π SEE ALSO π
the kernel file is ./drivers/gpu/drm/i915/i915_perf.c β and honestly? go read the whole squad, they're all icons:
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_register(9)i915_perf_unregister(9)i915_perf_remove_config_ioctl(9)i915_perf_init(9)i915_perf_fini(9)i915_perf_ioctl_version(9)
and that's the whole page bestie, you slayed it π
came to you straight from ./drivers/gpu/drm/i915, dated October 2026. no cap, that's the version and the date, mwah ππ
π¦ 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