STRUCT HW_QUEUE_PROPERTIES(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

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

okay so this is a page from the Kernel API Manual β€” we're talking about struct hw_queue_properties(9), bestie. it's a struct, it's about queues, and it holds the info. that's the vibe. let's get into it 🫢


🌸 NAME 🌸

struct hw_queue_properties β€” literally just queue information. that's it. that's the whole name. iconic brevity. ✨


πŸŽ€ SYNOPSIS πŸŽ€

here's the struct itself, copied exactly, no cap:

struct hw_queue_properties {
    enum hl_queue_type              type;
    enum queue_cb_alloc_flags       cb_alloc_flags;
    enum hl_collective_mode         collective_mode;
    u64 q_dram_bd_address;
    u8 driver_only;
    u8 binned;
    u8 supports_sync_stream;
    u8 dram_bd;
 };

πŸ¦‹ Members πŸ¦‹

okay so these are the fields, one by one, and yes i'm giving each of them their moment πŸ’…

  • type β€” the queue type. simple. clean. we love a type field.
  • cb_alloc_flags β€” a bitmap, and what it tells you is whether the hw queue supports a CB that was allocated by the Kernel driver, and therefore whether a CB handle can be provided for jobs on this queue. if it can't, then a CB address must be provided instead. so like… handle or address, pick your fighter ✨
  • collective_mode β€” the collective mode of the current queue. (yes. that's the whole description. short and mysterious, main character energy fr fr πŸ”₯)
  • q_dram_bd_address β€” the PQ dram address, and it's used when the PQ needs to reside in DRAM. 🫢
  • driver_only β€” true if only the driver is allowed to send a job to this queue, false otherwise. so if it's true, bestie, you are NOT sending anything there. respectfully. πŸ™ˆ
  • binned β€” True if the queue is binned out and should not be used. so like, if you see this one set, walk away, it's not for you πŸ’€
  • supports_sync_stream β€” True if the queue supports sync stream. that's the whole thing. noted and appreciated πŸŽ€
  • dram_bd β€” True if the bd should be copied to dram, which is needed for a PQ that has been allocated on dram. keeping those two besties in sync πŸ’œ

🌈 SEE ALSO 🌈

buckle up, this list is LONG and it ate, ngl 😭 first up, the kernel file itself:

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

and then all of these, in order, no skips, no cuts:

  • 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)
  • 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_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)
fr fr that's the whole list, don't @ me, i didn't choose the length, the kernel did πŸ’€

and that's the page!! πŸŽ€ from the ./drivers/accel/habanalabs/common crew, dated October 2026, and this was struct hw_queue_properties(9) β€” go understand your queues bestie, you've got this πŸ’–βœ¨πŸ‘‘

πŸ“¦ where this page comes from