STRUCT HL_INFO_RAZWI_EVENT(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct hl_info_razwi_event(9) β€” the Kernel API Manual, but make it make sense πŸ’…

okay so bestie, this is the page for struct hl_info_razwi_event(9) from the Kernel API Manual, and it's literally the little struct that carries all your razwi info ✨ (yes that's a real thing, stay with me). Let's get into it 🫢


🌸 NAME 🌸

struct hl_info_razwi_event β€” razwi information. that's it, that's the whole name. iconic brevity πŸ’–


✨ SYNOPSIS ✨

struct hl_info_razwi_event {
    __s64 timestamp;
    __u64 addr;
    __u16 engine_id[HL_RAZWI_MAX_NUM_OF_ENGINES_PER_RTR];
    __u16 num_of_possible_engines;
    __u8 flags;
    __u8 pad[5];
 };

look at her. six fields. no notes. πŸŽ€


πŸ’œ MEMBERS πŸ’œ

  • timestamp β€” the timestamp of the razwi. when did the chaos happen, bestie ⏰
  • addr β€” the address that, when something accessed it, caused the razwi. like the address was caught in 4K being the problem πŸ‘€
  • engine_id β€” the engine id of the razwi initiator πŸš€ if it was initiated by an engine that doesn't have an engine id, it gets set to HL_RAZWI_NA_ENG_ID. and if there are several possible engines that caused the razwi, this holds all of them β€” not just one, the whole squad πŸ’…
  • num_of_possible_engines β€” the number of possible engine ids, obviously πŸ’β€β™€οΈ so here's the tea: in some asics, the razwi indication might be common for several engines and there is literally no way to get the exact engine. in that case, the engine_id array gets filled with all possible engines that caused this razwi. also, there might be a possibility in gaudi where we don't indication on specific engine β€” in that case the value of this parameter will be zero πŸ«₯
  • flags β€” a bitmask for the additional data, and each bit is its own little moment:
    • HL_RAZWI_READ β€” razwi caused by a read operation πŸ“–
    • HL_RAZWI_WRITE β€” razwi caused by a write operation ✍️
    • HL_RAZWI_LBW β€” razwi caused by an lbw fabric transaction 🧡
    • HL_RAZWI_HBW β€” razwi caused by an hbw fabric transaction 🧢
    • HL_RAZWI_RR β€” razwi caused by a range register πŸ“
    • HL_RAZWI_ADDR_DEC β€” razwi caused by an address decode error πŸ’€

⭐ NOTE ⭐

this data is not supported by all asics, bestie 😭 in that case, the relevant bits will not be set. so if you're looking at something empty, that might be why β€” no cap, don't come for the struct.

πŸ¦‹ 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_undefined_opcode_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 a whole friend group right there, go say hi πŸ‘‹πŸ’–


and that's the page!! mwah, go read your structs responsibly 🧚 source lives at ./include/uapi/drm, dated October 2026 β€” bye bestie, ily, drink some water πŸ’œπŸŒΈ

πŸ“¦ where this page comes from