STRUCT PVR_FREE_LIST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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 fr
  • fw_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