__move_freep...lock_isolate(9)
π
__move_freepages_block_isolate(9) β like, the Kernel API Manual one π
okay so bestie, buckle up, because we're diving into the kernel API manual and this one is a whole vibe. it's a function page, it's got arguments, it's got a bool return, it's giving "i live in mm/page_alloc.c and i have main character energy." let's go β¨
πΈ SYNOPSIS πΈ
bool __move_freepages_block_isolate (struct zone *zone , struct page
*page , bool isolate );
yeah she's a bool girly. returns a yes-or-no, no cap. π
π¦ ARGUMENTS π¦
zoneβ the zone. that's it. that's the whole description. she's the zone, she's iconic, she's the context. πpageβ the pageblock page. that's the one you're pointing at, the one in question, the one we're gonna do stuff to.isolateβ abooltelling us: are we isolating the given pageblock, or are we *un*isolating it? both directions, she's versatile like that. π
β¨ DESCRIPTION β¨
so this one is basically the cousin of move_freepages_block, right? like, similar energy. but she handles the special case that pops up in page isolation, where the block of interest might actually be part of a larger buddy that spans multiple pageblocks. π«Ά messy? a little. handled? absolutely.
here's the difference, bestie: the regular page allocator path moves pages while it's stealing buddies off the freelist. that's her thing. but page isolation? she's interested in arbitrary pfn ranges that may have overlapping buddies on both ends. π different priorities, different girls.
and this function? she handles exactly that. straddling buddies get split into individual pageblocks, and only the block of interest is moved. no overreach. no collateral. only vibes. β¨
so what does she return?trueif pages could be moved,falseotherwise. simple. clean. slay. π
π₯ SEE ALSO π₯
- kernel file
./mm/page_alloc.cβ that's where she lives, that's her address, go say hi π __get_pfnblock_flags_mask(9)get_pfnblock_bit(9)get_pfnblock_migratetype(9)__set_pfnblock_flags_mask(9)set_pfnblock_bit(9)clear_pfnblock_bit(9)set_pageblock_migratetype(9)__putback_isolated_page(9)__free_pages(9)free_pages(9)alloc_pages_exact(9)alloc_pages_exact_nid(9)free_pages_exact(9)nr_free_zone_pages(9)nr_free_buffer_pages(9)find_next_best_node(9)free_reserved_pages(9)setup_per_zone_wmarks(9)__free_contig_range(9)alloc_contig_frozen_range(9)alloc_contig_range(9)alloc_contig_frozen_pages(9)alloc_contig_pages(9)free_contig_frozen_range(9)free_contig_range(9)alloc_pages_nolock(9)
like, that's the whole friend group. the whole squad. go read all of them, i'll wait. π
π§ cute little sign-off for you: this page is from the ./mm source, October 2026 edition. that's the version, that's the date, that's the era. periodt. π
π¦ 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