STRUCT HL_CS_COMPL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct hl_cs_compl(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual ✨ β€” this is the page for struct hl_cs_compl, which is literally the command submission completion object. yes, that's a whole thing, and yes, we're gonna understand it fr fr.


πŸŽ€ NAME πŸŽ€

struct hl_cs_compl β€” command submission completion object. that's it, that's the vibe. it's the little object that says "your CS is done, bestie" πŸ’…


🌸 SYNOPSIS 🌸

here's the whole glow-up of the struct itself, copy-pasted straight from the source, no cap:

struct hl_cs_compl {
    struct hl_fence         base_fence;
    spinlock_t lock;
    struct hl_device        *hdev;
    struct hl_hw_sob        *hw_sob;
    struct hl_cs_encaps_sig_handle *encaps_sig_hdl;
    u64 cs_seq;
    enum hl_cs_type         type;
    u16 sob_val;
    u16 sob_group;
    bool encaps_signals;
 };

look at her. iconic. πŸ’œ


πŸ¦‹ MEMBERS πŸ¦‹

okay now let's go member by member, because each one of these is a main character in her own right:

  • base_fence β€” the hl fence object. the foundation, the base, the bedrock. she's giving structure 🫢
  • lock β€” a spinlock that protects the fence. very "don't touch my stuff while i'm working" energy πŸ”’
  • hdev β€” pointer to the habanalabs device structure. this is the device she belongs to πŸ’–
  • hw_sob β€” the H/W SOB that gets used in this signal/wait CS. hardware representation, slay ⚑
  • encaps_sig_hdl β€” the encaps signals handler. handler duties, very responsible of her πŸ‘‘
  • cs_seq β€” the command submission sequence number. her little ID badge 🎫
  • type β€” the type of the CS, and the options are signal/wait. pick a lane bestie 🌈
  • sob_val β€” the SOB value used in this signal/wait CS. very specific, very demure πŸ”₯
  • sob_group β€” the SOB group used in this collective wait CS. group project but make it hardware πŸ“
  • encaps_signals β€” an indication of whether this is the completion object of a CS with encaps signals or not. yes/no energy, a vibe check in boolean form πŸ™ˆ

✨ SEE ALSO ✨

buckle up bestie, this list is LONG and she ate every single one of these cross-references πŸ’€ first, the source file herself:

Kernel file ./drivers/accel/habanalabs/common/habanalabs.h

and now the whole friend group, in order:

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_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_dbg_device_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)

like i said. she knows everyone πŸ’… iykyk


ngl bestie, that's the whole page. no hidden lore, no surprise options, just a completion object and her extremely long list of mutuals πŸ’–

and that's a wrap! πŸŽ€ this one came from ./drivers/accel/habanalabs/common, dated October 2026, and it's filed under struct hl_cs_compl(9) in the Kernel API Manual. go forth and complete your command submissions, queen πŸ‘‘βœ¨

πŸ“¦ where this page comes from