STRUCT HL_INFO_UNDEFINED_OPCODE_EVENT(9)
π struct hl_info_undefined_opcode_event β Kernel API Manual β¨
okay bestie, so this is a page from the Kernel API Manual about struct hl_info_undefined_opcode_event, which is lowkey just the receipts for the last undefined opcode error. like, the moment something in the hardware went "bestie what" and executed a thing that isn't a thing π«Ά
πΈ NAME πΈ
struct hl_info_undefined_opcode_event β info about last undefined opcode error
no cap, that's it. that's the whole vibe check. π
β¨ SYNOPSIS β¨
struct hl_info_undefined_opcode_event {
__s64 timestamp;
__u64
cb_addr_streams[MAX_QMAN_STREAMS_INFO][OPCODE_INFO_MAX_ADDR_SIZE];
__u64 cq_addr;
__u32 cq_size;
__u32 cb_addr_streams_len;
__u32 engine_id;
__u32 stream_id;
};
look at her. iconic. slightly chaotic line-wrapping on the __u64 before cb_addr_streams, but she ate, we don't judge. π
π Members π
timestampβ the timestamp of the undefined opcode error. literally the when. the moment in time. the little timestamp saying "yeah this happened" β°cb_addr_streamsβ the CB addresses (per stream) that are currently exists in the PQ entries. and okay hear me out: if all the streams array entries are filled with values, that means the execution was in Lower-CP. that's the tell, iykyk π΅οΈββοΈcq_addrβ the address of the current handled command buffer. yes bestie, this one. πcq_sizeβ the size of the current handled command buffer. how chunky she is. πcb_addr_streams_lenβ num of streams, aka the actual len of thecb_addr_streamsarray. it should be equal to1in case of undefined opcode in Upper-CP (specific stream), and equal to4incase of undefined opcode in Lower-CP. those two numbers? memorize them. they're the whole plot. π’engine_idβ engine-id that the error occurred on. which engine was being a little main character when it all went down πstream_idβ the stream id the error occurred on. and in case the stream equalsMAX_QMAN_STREAMS_INFO? that means the error occurred on a Lower-CP. sneaky little sentinel value, we love her π
π¦ SEE ALSO π¦
Kernel file ./include/uapi/drm/habanalabs_accel.h, enum hl_goya_dma_direction(9), enum hl_device_status(9), struct hl_info_hw_ip_info(9), struct hl_info_pci_counters(9), struct hl_info_clk_throttle(9), struct hl_info_energy(9), struct hl_open_stats_info(9), struct hl_power_info(9), struct hl_info_sync_manager(9), struct hl_info_cs_counters(9), struct hl_info_last_err_open_dev_time(9), struct hl_info_cs_timeout_event(9), struct hl_info_razwi_event(9), struct hl_info_hw_err_event(9), struct hl_info_fw_err_event(9), struct hl_info_engine_err_event(9), struct hl_info_dev_memalloc_page_sizes(9), struct hl_page_fault_info(9), struct hl_user_mapping(9), struct hl_info_args(9).
that's the whole friend group right there, go say hi π
mwah π that's the page. sourced straight from ./include/uapi/drm, dated October 2026, filed under struct hl_i...opcode_event(9) β the truncated lil' header name that the man page tooling gave us and honestly? she's doing her best. stay hydrated, read your structs, and remember: 1 means Upper-CP, 4 means Lower-CP. periodt. πβ
π¦ 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