STRUCT PVR_FREE_LIST(9)
β¨ struct pvr_free_list(9) β¨
okay so bestie, welcome to the Kernel API Manual π this page is all about struct pvr_free_list and honestly? it's giving organizational queen. let's get into it π«Ά
πΈ NAME πΈ
struct pvr_free_list β literally a structure representing a free list. that's it, that's the vibe π
π¦ SYNOPSIS π¦
struct pvr_free_list {
struct kref ref_count;
struct pvr_device *pvr_dev;
struct pvr_gem_object *obj;
struct pvr_fw_object *fw_obj;
struct rogue_fwif_freelist *fw_data;
struct mutex lock;
u32 fw_id;
u32 current_pages;
u32 max_pages;
u32 grow_pages;
u32 grow_threshold;
u32 ready_pages;
struct list_head mem_block_list;
struct list_head hwrt_list;
u32 initial_num_pages;
u64 free_list_gpu_addr;
};
look at all those members, a whole little ecosystem πβ¨
π Members π
ref_countβ the reference count of the object, keeping track of who's still holding on. classic refcount behavior, no cap πpvr_devβ pointer to the device that owns this object. it's the main character's home base πobjβ the GEM object representing the free list. iconic GEM representation fr frfw_objβ the FW object representing the FW-side structure π§fw_dataβ pointer to the CPU mapping of the FW-side structure. mapping era π«lockβ the mutex protecting modification of the free list. must be held when accessing any of the members below β so like, do NOT skip this one bestie, it's not optional πfw_idβ the firmware ID for this object. gotta have an ID β¨current_pagesβ current number of pages in the free list πmax_pagesβ maximum number of pages in the free list. the ceiling, the limit, the "know your worth" number πgrow_pagesβ pages to grow the free list by per request π±grow_thresholdβ the percentage of FL memory used that should trigger a new grow request. it's the lil alarm bell that says "time to grow bestie" πready_pagesβ number of pages reserved for FW to use while a grow request is being processed. reserved and ready, we love to see it πmem_block_listβ list of memory blocks in this free list. a whole lineup of blocks πhwrt_listβ list of HWRTs using this free list. HWRT squad represent π«Άinitial_num_pagesβ initial number of pages in the free list. where it all started βfree_list_gpu_addrβ the address of the free list in GPU address space. its literal location in the universe πΊοΈ
π₯ SEE ALSO π₯
kernel file ./drivers/gpu/drm/imagination/pvr_free_list.h β plus these besties: struct pvr_free_list_node(9), pvr_free_list_lookup(9), and pvr_free_list_lookup_id(9) π
and that's the page!! π found in ./drivers/gpu/drm/imagination, dropping October 2026 like the little time capsule it is β love that for us. go forth and free-list responsibly, bestie π¦π
π¦ 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