get_user_pages_fast_only(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… get_user_pages_fast_only β€” pin user pages in memory ✨

okay so bestie, this one lives in the Kernel API Manual (that's the get_user_pages_fast_only(9) corner of the world), and it's honestly kinda iconic. Let's get into it 🫢


✨ SYNOPSIS ✨

int get_user_pages_fast_only (unsigned long start , int nr_pages ,
unsigned int gup_flags , struct page **pages );

like, she takes four things and returns an int. slay πŸ’…


πŸŽ€ ARGUMENTS πŸŽ€

  • start β€” the starting user address. where the whole thing begins, periodt πŸ“
  • nr_pages β€” number of pages from start to pin. yes, that many πŸ“
  • gup_flags β€” flags modifying pin behaviour. the little knobs that change how it acts ✨
  • pages β€” the array that receives pointers to the pages pinned. should be at least nr_pages long. at least, bestie, don't come in here with a short array πŸ™ˆ

πŸ’– DESCRIPTION πŸ’–

So like β€” it's get_user_pages_fast but the IRQ-safe version, in that it won't fall back to the regular GUP. no backup plan, no fallback era, she stands on business πŸ‘‘

If the architecture does not support this function, it simply returns with no pages pinned. like, nothing happened, no pages, we move on πŸ¦‹

⚠️ Careful, careful! COW breaking can go either way, so a non-write access can get ambiguous page results. If you call this function without

(and yes, the original page literally trails off right there β€” "If you call this function without" and nothing else. that's not me skipping it, that's just the text, iykyk πŸ˜­πŸ’€ so watch yourself and read the source.)


🌈 SEE ALSO 🌈

Kernel file ./mm/gup.c β€” plus this whole friend group:


and that's the whole page, bestie 🌸 this lil entry comes from the source section ./mm and it's dated October 2026 β€” so mark your calendar, screenshot it, whatever, it's giving main character energy and it ate πŸ’…πŸ’–βœ¨πŸ‘‘

πŸ“¦ where this page comes from