STRUCT HL_VM_PHYS_PG_PACK(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

struct hl_vm_phys_pg_pack(9) β€” okay bestie, welcome to the Kernel API Manual page for struct hl_vm_phys_pg_pack, aka the physical page pack. It’s literally a struct that packs up physical pages, and we’re gonna get into every single field. πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

struct hl_vm_phys_pg_pack {
    enum vm_type            vm_type;
    u64 *pages;
    u64 npages;
    u64 total_size;
    struct list_head        node;
    atomic_t mapping_cnt;
    u32 asid;
    u32 page_size;
    u32 flags;
    u32 handle;
    u32 offset;
    u8 contiguous;
    u8 created_from_userptr;
};

πŸŽ€ Members πŸŽ€

Okay so this struct is basically a group chat for physical pages, and every member has a job. Here’s the whole cast β€” no skips, no cap:

  • vm_type β€” describes the type of the virtual area descriptor. It’s giving β€œwhat kind of virtual area is this?” energy. ✨
  • pages β€” the physical page array. The actual page squad. 🫢
  • npages β€” the number of physical pages in the pack. Yes, we’re counting them all. πŸ”’
  • total_size β€” the total size of all the pages in this list. Big-picture size vibes. πŸ’…
  • node β€” used to attach to the deletion list that gets used when all the allocations are cleared at the teardown of the context. Cleanup crew behavior, honestly. 🧹
  • mapping_cnt β€” number of shared mappings. It’s keeping track of the mapping situation. πŸ‘€
  • asid β€” the context related to this list. Context bestie. πŸ’œ
  • page_size β€” size of each page in the pack. Every page gets a size check. πŸ“
  • flags β€” HL_MEM_* flags related to this list. The flag collection, periodt. 🚩
  • handle β€” the provided handle related to this list. The handle in question. πŸŽ€
  • offset β€” offset from the first page. Not starting at zero? This field knows. πŸ“
  • contiguous β€” tells you if this is contiguous physical memory. Contiguous or not, that’s the question. 🧚
  • created_from_userptr β€” it’s the product of host virtual address. Yes, that’s the whole note. πŸ™ˆ

πŸ’œ SEE ALSO πŸ’œ

The kernel file in question is ./drivers/accel/habanalabs/common/habanalabs.h. And now, the full SEE ALSO lineup β€” yes, every single one, because we do not gatekeep the boring parts, bestie:

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

Source/version vibes: ./drivers/accel/habanalabs/common Β· October 2026 Β· struct hl_vm_phys_pg_pack(9). Bye bestie, go pack those pages πŸ’…βœ¨

πŸ“¦ where this page comes from