pvr_mmu_op_c..._sync_manual(9)
π pvr_mmu_op_c..._sync_manual(9) π
okay so bestie, welcome to the Kernel API Manual β¨ β this one is pvr_mmu_op_c..._sync_manual(9), which is the long dramatic name for a function with a long dramatic job. she's basically the "go go go" button for page tables. let's get into it π
β¨ NAME β¨
pvr_mmu_op_context_sync_manual β triggers a sync of some or all of the page tables that a MMU op context is pointing at. like, "hey bestie, flush the vibes, some of them, or all of them, your call" π
πΈ SYNOPSIS πΈ
void pvr_mmu_op_context_sync_manual (struct pvr_mmu_op_context *op_ctx ,
enum pvr_mmu_sync_level level );
no return value, no cap, just vibes and side effects π¦
π¦ ARGUMENTS π¦
op_ctxβ the target MMU op context. the main character of this whole operation πlevelβ the maximum page table level to sync. like a depth limit but for syncing β¨
π DESCRIPTION π
okay so this is the important part, listen up π«Ά
do not call this function directly. i'm so serious. this is not a "just try it and see what happens" situation. instead you use pvr_mmu_op_context_sync_partial, which actually gets checked against the current value of op_ctx->sync_level_required β and that value is set by pvr_mmu_op_context_require_sync. so the whole safety-check pipeline exists and you're gonna respect it, periodt π
literally do not call this directly, bestie. use pvr_mmu_op_context_sync_partial. the check is the whole point π
π SEE ALSO π
the whole extended friend group, iykyk:
- Kernel file
./drivers/gpu/drm/imagination/pvr_mmu.c pvr_mmu_set_flush_flags(9)pvr_mmu_flush_request_all(9)pvr_mmu_flush_exec(9)- PowerVR Virtual Memory Handling(9)
- PowerVR Virtual Memory Handling (constants)(9)
- MMU backing pages(9)
- MMU backing pages (constants)(9)
struct pvr_mmu_backing_page(9)pvr_mmu_backing_page_init(9)pvr_mmu_backing_page_fini(9)pvr_mmu_backing_page_sync(9)- Raw page tables(9)
struct pvr_page_table_l2_entry_raw(9)pvr_page_table_l2_entry_raw_set(9)struct pvr_page_table_l1_entry_raw(9)pvr_page_table_l1_entry_raw_set(9)struct pvr_page_table_l0_entry_raw(9)struct pvr_page_flags_raw(9)pvr_page_table_l0_entry_raw_set(9)pvr_page_flags_raw_create(9)struct pvr_page_table_l2_raw(9)struct pvr_page_table_l1_raw(9)struct pvr_page_table_l0_raw(9)- Mirror page tables(9)
struct pvr_page_table_l2(9)pvr_page_table_l2_init(9)pvr_page_table_l2_fini(9)pvr_page_table_l2_sync(9)pvr_page_table_l2_get_raw(9)pvr_page_table_l2_get_entry_raw(9)pvr_page_table_l2_entry_is_valid(9)struct pvr_page_table_l1(9)pvr_page_table_l1_init(9)pvr_page_table_l1_free(9)pvr_page_table_l1_sync(9)pvr_page_table_l1_get_raw(9)pvr_page_table_l1_get_entry_raw(9)pvr_page_table_l1_entry_is_valid(9)struct pvr_page_table_l0(9)pvr_page_table_l0_init(9)pvr_page_table_l0_free(9)pvr_page_table_l0_sync(9)pvr_page_table_l0_get_raw(9)pvr_page_table_l0_get_entry_raw(9)pvr_page_table_l0_entry_is_valid(9)struct pvr_mmu_context(9)struct pvr_page_table_ptr(9)struct pvr_mmu_op_context(9)pvr_page_table_l2_insert(9)pvr_page_table_l2_remove(9)pvr_page_table_l1_insert(9)pvr_page_table_l1_remove(9)pvr_page_table_l0_insert(9)pvr_page_table_l0_remove(9)- Page table index utilities(9)
pvr_page_table_l2_idx(9)pvr_page_table_l1_idx(9)pvr_page_table_l0_idx(9)- High-level page table operations(9)
pvr_page_table_l1_get_or_insert(9)pvr_page_table_l0_get_or_insert(9)pvr_mmu_context_create(9)pvr_mmu_context_destroy(9)pvr_mmu_get_root_table_dma_addr(9)pvr_page_table_l1_alloc(9)pvr_page_table_l0_alloc(9)pvr_mmu_op_context_require_sync(9)pvr_mmu_op_context_sync_partial(9)pvr_mmu_op_context_sync(9)pvr_mmu_op_context_load_tables(9)pvr_mmu_op_context_set_curr_page(9)pvr_mmu_op_context_next_page(9)- Single page operations(9)
pvr_page_create(9)pvr_page_destroy(9)pvr_mmu_op_context_destroy(9)pvr_mmu_op_context_create(9)pvr_mmu_op_context_unmap_curr_page(9)pvr_mmu_unmap(9)pvr_mmu_map_sgl(9)pvr_mmu_map(9)
that's the whole squad, no gatekeeping π if you made it this far, you're literally a kernel girlie now. slay π§
<div align="center">β β¨ later, bestie β¨ β</div>
this page lives in./drivers/gpu/drm/imagination(yes that's the source/version, october 2026 date energy π) and it signs off aspvr_mmu_op_c..._sync_manual(9). bye bye, drink water, don't call this function directly ππ¦π
π¦ 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