STRUCT I915_OA_OPS(9)
π struct i915_oa_ops(9) π
okay so bestie, this page is from the Kernel API Manual, and it's literally the Gen specific implementation of an OA unit stream. It's giving βone struct to rule all the Gen-specific fiddly bitsβ energy, and honestly? Iconic. β¨
πΈ NAME πΈ
struct i915_oa_opsβ Gen specific implementation of an OA unit stream.
π¦ SYNOPSIS π¦
no cap, here's the exact shape of it:
struct i915_oa_ops {
bool (*is_valid_b_counter_reg)(struct i915_perf *perf, u32 addr);
bool (*is_valid_mux_reg)(struct i915_perf *perf, u32 addr);
bool (*is_valid_flex_reg)(struct i915_perf *perf, u32 addr);
int (*enable_metric_set)(struct i915_perf_stream *stream, struct i915_active *active);
void (*disable_metric_set)(struct i915_perf_stream *stream);
void (*oa_enable)(struct i915_perf_stream *stream);
void (*oa_disable)(struct i915_perf_stream *stream);
int (*read)(struct i915_perf_stream *stream, char __user *buf, size_t count, size_t *offset);
u32 (*oa_hw_tail_read)(struct i915_perf_stream *stream);
};
π§ Members π§
is_valid_b_counter_regβ Validates register's address for programming boolean counters for a particular platform. πis_valid_mux_regβ Validates register's address for programming mux for a particular platform. β¨is_valid_flex_regβ Validates register's address for programming flex EU filtering for a particular platform. π¦enable_metric_setβ Selects and applies any MUX configuration to set up the Boolean and Custom (B/C) counters that are part of the counter reports being sampled. May apply system constraints such as disabling EU clock gating as required. πdisable_metric_setβ Remove system constraints associated with using the OA unit. πoa_enableβ Enable periodic sampling. π₯oa_disableβ Disable periodic sampling. πreadβ Copy data from the circular OA buffer into a given userspace buffer. π«Άoa_hw_tail_readβ read the OA tail pointer register. β
In particular this enables us to share all the fiddly code for handling the OA unit tail pointer race that affects multiple generations. fr fr, that's the whole vibe β shared fiddly-code handling, no cap. π
π SEE ALSO π
- Kernel file
./drivers/gpu/drm/i915/i915_perf_types.h struct i915_perf_stream_ops(9)struct i915_perf_stream(9)
xoxo π from the Kernel API Manual, source ./drivers/gpu/drm/i915, dated October 2026, page struct i915_oa_ops(9) π
π¦ 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