STRUCT HL_USERPTR(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

struct hl_userptr(9) πŸ’–

okay so bestie, this is the Kernel API Manual page for struct hl_userptr(9) β€” and no cap, it's giving β€œmemory mapping chunk information” in the most iconic way 🫢✨. We're gonna go through every single field like it's a group-chat roll call, so grab a strawberry drink πŸ“ and let's get into it.


🌸 NAME 🌸

struct hl_userptr β€” memory mapping chunk information πŸŽ€

✨ SYNOPSIS ✨

struct hl_userptr {
    enum vm_type                    vm_type;
    struct list_head                job_node;
    struct page                     **pages;
    unsigned int                    npages;
    struct sg_table                 *sgt;
    enum dma_data_direction         dir;
    struct list_head                debugfs_list;
    pid_t pid;
    u64 addr;
    u64 size;
    u8 dma_mapped;
};

πŸŽ€ Members πŸŽ€

  • vm_type β€” type of the VM, periodt πŸ’…
  • job_node β€” linked-list node for hanging the object on the Job's list πŸ¦‹
  • pages β€” pointer to struct page array
  • npages β€” size of pages array
  • sgt β€” pointer to the scatter-gather table that holds the pages ✨
  • dir β€” for DMA unmapping, the direction must be supplied, so save it 🫢
  • debugfs_list β€” node in debugfs list of command submissions
  • pid β€” the pid of the user process owning the memory πŸ‘‘
  • addr β€” user-space virtual address of the start of the memory area
  • size β€” size of the memory area to pin & map
  • dma_mapped β€” true if the SG was mapped to DMA addresses, false otherwise πŸ’€

πŸ’… SEE ALSO πŸ’…

Kernel file ./drivers/accel/habanalabs/common/habanalabs.h is the main character here, and the full reference roll call is:

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

mwah πŸ’‹ β€” source/version: ./drivers/accel/habanalabs/common, date: October 2026.

πŸ“¦ where this page comes from