STRUCT HL_DBG_DEVICE_ENTRY(9)
π struct hl_dbg_device_entry(9) β Kernel API Manual π
okay bestie, welcome to the group chat for the ASIC specific debugfs manager β¨ this struct is literally the manager for the debugfs situation, and itβs giving main character energy. no cap, weβre going through every field, every cross-reference, the whole vibe. π«Ά
πΈ NAME πΈ
struct hl_dbg_device_entry β ASIC specific debugfs manager. thatβs the whole name, periodt. π
β¨ SYNOPSIS β¨
hereβs the exact struct, bestie β do not touch the semicolons, theyβre part of the lore:
struct hl_dbg_device_entry {
struct dentry *root;
struct hl_device *hdev;
struct hl_debugfs_entry *entry_arr;
struct list_head file_list;
struct mutex file_mutex;
struct list_head cb_list;
spinlock_t cb_spinlock;
struct list_head cs_list;
spinlock_t cs_spinlock;
struct list_head cs_job_list;
spinlock_t cs_job_spinlock;
struct list_head userptr_list;
spinlock_t userptr_spinlock;
struct list_head ctx_mem_hash_list;
struct mutex ctx_mem_hash_mutex;
struct debugfs_blob_wrapper data_dma_blob_desc;
struct debugfs_blob_wrapper mon_dump_blob_desc;
char *state_dump[HL_STATE_DUMP_HIST_LEN];
struct rw_semaphore state_dump_sem;
u64 addr;
u64 mmu_addr;
u64 mmu_cap_mask;
u64 userptr_lookup;
u32 mmu_asid;
u32 state_dump_head;
u8 i2c_bus;
u8 i2c_addr;
u8 i2c_reg;
u8 i2c_len;
#ifdef CONFIG_HL_HLDIO;
struct hl_dio_stats dio_stats;
#endif;
};
π Members π
okay so every member is in the struct, and hereβs the tea, one by one:
rootβ root dentry. itβs the root dentry, serving root energy. π±hdevβ habanalabs device structure. the device itself, bestie.entry_arrβ array of availablehl_debugfs_entry. the lineup of debugfs entries, slay.file_listβ list of available debugfs files. the file roster.file_mutexβ protectsfile_list. lowkey its bodyguard.cb_listβ list of availableCBs. the CB crew.cb_spinlockβ protectscb_list. yes, another protector.cs_listβ list of availableCSs. iconic.cs_spinlockβ protectscs_list. keeping it safe.cs_job_listβ list of availableCBjobs. note:CBjobs, exactly as the page says.cs_job_spinlockβ protectscs_job_list. the spinlock for that job list.userptr_listβ list of available userptrs (virtual memory chunk descriptor). parenthetical included, no cap.userptr_spinlockβ protectsuserptr_list. bodyguard behavior.ctx_mem_hash_listβ list of available contexts with MMU mappings.ctx_mem_hash_mutexβ protects list of available contexts with MMU mappings.data_dma_blob_descβ data DMA descriptor of blob.mon_dump_blob_descβ monitor dump descriptor of blob.state_dumpβ data of the system states in case of a bad cs.state_dump_semβ protectsstate_dump.addrβ next address to read/write from/to inread/write32.mmu_addrβ next virtual address to translate to physical address inmmu_show.mmu_cap_maskβ mmu hw capability mask, to be used inmmu_ack_error.userptr_lookupβ the target user ptr to look up for on demand.mmu_asidβ ASID to use while translating inmmu_show.state_dump_headβ index of the latest state dump.i2c_busβ genericu8debugfs file for bus value to use ini2c_data_read.i2c_addrβ genericu8debugfs file for address value to use ini2c_data_read.i2c_regβ genericu8debugfs file for register value to use ini2c_data_read.i2c_lenβ genericu8debugfs file for length value to use ini2c_data_read.dio_statsβ Direct I/O statistics, chilling inside the#ifdef CONFIG_HL_HLDIO;block like the synopsis says.
π₯ SEE ALSO π₯
Kernel file ./drivers/accel/habanalabs/common/habanalabs.h is the source-file bestie, and these are all the SEE ALSO references β every single one, iykyk:
enum hl_mmu_page_table_location(9)struct iterate_module_ctx(9)struct hl_gen_wait_properties(9)struct pgt_info(9)enum hl_pci_match_mode(9)enum hl_fw_component(9)enum hl_fw_types(9)enum hl_queue_type(9)struct hw_queue_properties(9)enum vm_type(9)enum mmu_op_flags(9)enum hl_device_hw_state(9)struct hl_mmu_properties(9)struct hl_hints_range(9)struct asic_fixed_properties(9)struct hl_fence(9)struct hl_cs_compl(9)struct hl_ts_buff(9)struct hl_mem_mgr(9)struct hl_mem_mgr_fini_stats(9)struct hl_mmap_mem_buf_behavior(9)struct hl_mmap_mem_buf(9)struct hl_cb(9)struct hl_sync_stream_properties(9)struct hl_encaps_signals_mgr(9)struct hl_hw_queue(9)struct hl_cq(9)struct hl_ts_free_jobs(9)struct hl_user_interrupt(9)struct timestamp_reg_free_node(9)struct hl_user_pending_interrupt(9)struct hl_eq(9)struct hl_dec(9)enum hl_asic_type(9)enum hl_pm_mng_profile(9)enum hl_pll_frequency(9)struct pci_mem_region(9)struct static_fw_load_mgr(9)struct fw_response(9)struct dynamic_fw_load_mgr(9)struct pre_fw_load_props(9)struct fw_image_props(9)struct fw_load_mgr(9)struct engines_data(9)struct hl_asic_funcs(9)enum hl_va_range_type(9)struct hl_va_range(9)struct hl_cs_counters_atomic(9)struct hl_dmabuf_priv(9)struct hl_cs_outcome(9)struct hl_cs_outcome_store(9)struct hl_ctx(9)struct hl_ctx_mgr(9)struct hl_userptr(9)struct hl_cs(9)struct hl_cs_job(9)struct hl_cs_parser(9)struct hl_vm_hash_node(9)struct hl_vm_hw_block_list_node(9)struct hl_vm_phys_pg_pack(9)struct hl_vm_va_block(9)struct hl_vm(9)struct hl_debug_params(9)struct hl_notifier_event(9)struct hl_fpriv(9)struct hl_info_list(9)struct hl_debugfs_entry(9)struct hl_debugfs_cfg_access_entry(9)struct hl_debugfs_cfg_access(9)struct hl_hw_obj_name_entry(9)struct hl_mon_state_dump(9)struct hl_sync_to_engine_map_entry(9)struct hl_sync_to_engine_map(9)struct hl_state_dump_specs_funcs(9)struct hl_state_dump_specs(9)struct hl_device_reset_work(9)struct hl_mmu_priv(9)struct hl_mmu_per_hop_info(9)struct hl_mmu_hop_info(9)struct hl_hr_mmu_funcs(9)struct hl_mmu_funcs(9)struct hl_prefetch_work(9)struct multi_cs_completion(9)struct multi_cs_data(9)struct hl_clk_throttle_timestamp(9)struct hl_clk_throttle(9)struct user_mapped_block(9)struct cs_timeout_info(9)struct undefined_opcode_info(9)struct page_fault_info(9)struct razwi_info(9)struct hw_err_info(9)struct fw_err_info(9)struct engine_err_info(9)struct hl_error_info(9)struct hl_reset_info(9)struct eq_heartbeat_debug_info(9)struct hl_device(9)struct hl_cs_encaps_sig_handle(9)struct hl_info_fw_err_info(9)hl_ioctl_t(9)struct hl_ioctl_desc(9)hl_get_sg_info(9)hl_mem_area_inside_range(9)hl_mem_area_crosses_range(9)
okay thatβs the whole manual page, bestie. cute sign-off time: source/version vibes are ./drivers/accel/habanalabs/common, the date is October 2026, and the page is struct hl_dbg_device_entry(9) from the Kernel API Manual. 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