GENERIC RADIX PAGE TABLE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ Generic Radix Page Table πŸ¦‹

okay so bestie πŸ’– welcome to Generic Radix Page Table(9) from the Kernel API Manual β€” this is literally the whole set of functions and helpers that efficiently parse radix style page tables, aka the kind you typically see in HW implementations. The interface is built to deliver similar code generation as the mm's pte/pmd/etc system by fully inlining the exact code required to handle each table level. periodt. ✨

Like the mm subsystem, each format contributes its parsing implementation under common names, and the common code implements the required algorithms. iconic behavior.

The system is divided into three logical levels:

  • The page table format and its manipulation functions
  • Generic helpers to give a consistent API regardless of underlying format
  • An algorithm implementation (e.g. IOMMU/DRM/KVM/MM)

Multiple implementations are supported. The intention is to have the generic format code be re-usable for whatever specialized implementation is required. The generic code is solely about the format of the radix tree; it does not include memory allocation or higher level decisions that are left for the implementation. no cap. πŸ’…

The generic framework supports a superset of functions across many HW implementations:

  • Entries comprised of contiguous blocks of IO PTEs for larger page sizes
  • Multi-level tables, up to 6 levels. Runtime selected top level
  • Runtime variable table level size (ARM's concatenated tables)
  • Expandable top level allowing dynamic sizing of table levels
  • Optional leaf entries at any level
  • 32-bit/64-bit virtual and output addresses, using every address bit
  • Dirty tracking
  • Sign extended addressing

πŸ’… SEE ALSO πŸ’…

Kernel file ./include/linux/generic_pt/common.h β€” struct pt_common(9), enum pt_features(9). that's the see-also squad, bestie 🫢🌸


xoxo πŸ’– this page is sourced from ./include/linux/generic_pt, dated October 2026, and officially lives as Generic Radix Page Table(9) βœ¨πŸ‘‘

πŸ“¦ where this page comes from