STRUCT DRM_I915_PERF_OA_CONFIG(9)
π struct drm_i915_perf_oa_config(9) β the Kernel API Manual edition
okay so real talk, bestie: this one lives in the Kernel API Manual, and it's genuinely lowkey iconic. It's the little struct you hand to the kernel when you wanna upload a perf dynamic configuration. That's the whole vibe. Let's get into it. π
β¨ NAME β¨
struct drm_i915_perf_oa_config β that's the name, that's the struct, no notes. π
πΈ SYNOPSIS πΈ
here's the whole shape of her, look at her go:
struct drm_i915_perf_oa_config {
char uuid[36];
__u32 n_mux_regs;
__u32 n_boolean_regs;
__u32 n_flex_regs;
__u64 mux_regs_ptr;
__u64 boolean_regs_ptr;
__u64 flex_regs_ptr;
};
π¦ Members π¦
okay member-by-member, i'm obsessed actually:
uuidβ a string formatted exactly like"% 8x-% 4x-% 4x-% 4x-% 12x". that's the format spec, keep it exact, don't be cute with it. β¨n_mux_regsβ the number of mux regs living inmux_regs_ptr.n_boolean_regsβ the number of boolean regs living inboolean_regs_ptr.n_flex_regsβ the number of flex regs living inflex_regs_ptr.mux_regs_ptrβ pointer to tuples ofu32values (that's register address, value β address first, value second π«Ά) for mux registers. the expected length of the buffer is(2 * sizeof(u32) * n_mux_regs).boolean_regs_ptrβ pointer to tuples ofu32values (register address, value) for mux registers. yes, it says mux registers, that's what the doc says and i'm just the messenger π. the expected length of the buffer is(2 * sizeof(u32) * n_boolean_regs).flex_regs_ptrβ pointer to tuples ofu32values (register address, value) for mux registers. same deal, bestie, quoting it faithfully π. the expected length of the buffer is(2 * sizeof(u32) * n_flex_regs).
π Description π
it's giving "purpose-built and unbothered": this is the structure to upload perf dynamic configuration into the kernel. that's the whole job. that's her main character energy. no cap. π
π₯ SEE ALSO π₯
a whole friend group, literally. go say hi:
- Kernel file
./tools/perf/trace/beauty/include/uapi/drm/i915_drm.h - uevents generated by i915 on its device node(9)
- struct
i915_user_extension(9) - enum
drm_i915_gem_engine_class(9) - struct
i915_engine_class_instance(9) - perf_events exposed by i915 through
/sys/bus/event_sources/drivers/i915(9) - struct
drm_i915_getparam(9) drm_i915_getparam_t(9)- struct
drm_i915_gem_mmap_offset(9) - struct
drm_i915_gem_set_domain(9) - struct
drm_i915_gem_exec_fence(9) - struct
drm_i915_gem_execbuffer_ext_timeline_fences(9) - struct
drm_i915_gem_execbuffer2(9) - struct
drm_i915_gem_caching(9) - struct
drm_i915_gem_context_create_ext(9) - struct
drm_i915_gem_context_param(9) - Virtual Engine uAPI(9)
- struct
i915_context_engines_parallel_submit(9) - Context Engine Map uAPI(9)
- struct
drm_i915_gem_context_create_ext_setparam(9) - struct
drm_i915_gem_vm_control(9) - struct
drm_i915_gem_userptr(9) - struct
drm_i915_query_item(9) - struct
drm_i915_query(9) - struct
drm_i915_query_topology_info(9) - Engine Discovery uAPI(9)
- struct
drm_i915_engine_info(9) - struct
drm_i915_query_engine_info(9) - struct
drm_i915_query_perf_config(9) - enum
drm_i915_gem_memory_class(9) - struct
drm_i915_gem_memory_class_instance(9) - struct
drm_i915_memory_region_info(9) - struct
drm_i915_query_memory_regions(9) - struct
drm_i915_query_guc_submission_version(9) - GuC HWCONFIG blob uAPI(9)
- struct
drm_i915_gem_create_ext(9) - struct
drm_i915_gem_create_ext_memory_regions(9) - struct
drm_i915_gem_create_ext_protected_content(9) - struct
drm_i915_gem_create_ext_set_pat(9)
fr fr, this page's source path shows up as./tools/perf/trace/beauty/incl...and it's dated October 2026, and the whole thing is filed understruct drm_i...rf_oa_config(9)β a true icon, no further questions π π
that's the page, bestie. go upload some perf dynamic configuration. slay. π§β¨
π¦ 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