vmballoon_migratepage(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ vmballoon_migratepage πŸ’… (it's a section 9 Kernel API Manual girlie)

okay so bestie, gather round, because this one is literally the balloon driver's little relocation specialist 🎈 and she has one job: moving a balloon page from point A to point B without anyone noticing. no cap.


🌸 NAME 🌸

vmballoon_migratepage β€” migrates a balloon page. that's it, that's the whole vibe.


πŸ¦‹ SYNOPSIS πŸ¦‹

int vmballoon_migratepage (struct balloon_dev_info *b_dev_info , struct
       page *newpage , struct page *page , enum migrate_mode mode );

like, look at her. four arguments, one int return, main character energy fr fr.


πŸŽ€ ARGUMENTS πŸŽ€

  • b_dev_info β€” the balloon device information descriptor. it's giving "the paperwork that tells us whose balloon we're messing with" πŸ“‹
  • newpage β€” the page to which page should be migrated. so like, the destination. the new apartment. the glow-up location 🏑
  • page β€” a ballooned page that should be migrated. the one actually packing its bags ✈️
  • mode β€” migration mode, ignored. yeah she literally does not care. mode is there but she's not reading it πŸ™ˆ (no thoughts, head empty, key ignored)

πŸ’œ RETURN πŸ’œ

okay this part matters, pay attention bestie πŸ‘‘

  • zero on success β€” slay, migrated, we love to see it ✨
  • -EAGAIN when migration cannot be performed momentarily β€” like "not right now babe, try again in a sec" 😭
  • -EBUSY if migration failed and should be retried with that specific page β€” so retry with that page specifically, don't get it twisted πŸ”₯
  • -ENOENT when deflating page succeeded but inflating newpage failed β€” ngl this one's a little cursed πŸ’€ because the deflate worked and the inflate didn't, which effectively deflates the balloon. so, yeah. read that one twice.
bestie warning-ish reminder: -ENOENT is not just "oops nothing happened" β€” the deflate already landed, so the balloon is genuinely deflated by the time you get this back. plan accordingly 🫢

🌈 SEE ALSO 🌈

all her friends and mutuals, in order, because we do not leave anyone out πŸ’–

Kernel file ./drivers/misc/vmw_balloon.c, enum vmballoon_cmd_type(9), struct vmballoon_batch_entry(9), vmballoon_send_guest_id(9), vmballoon_page_order(9), vmballoon_page_in_frames(9), vmballoon_mark_page_offline(9), vmballoon_mark_page_online(9), vmballoon_send_get_target(9), vmballoon_alloc_page_list(9), vmballoon_handle_one_result(9), vmballoon_status_page(9), vmballoon_lock_op(9), vmballoon_add_page(9), vmballoon_lock(9), vmballoon_release_page_list(9), vmballoon_change(9), vmballoon_enqueue_page_list(9), vmballoon_dequeue_page_list(9), vmballoon_split_refused_pages(9), vmballoon_inflate(9), vmballoon_deflate(9), vmballoon_deinit_batching(9), vmballoon_init_batching(9), vmballoon_vmci_init(9), vmballoon_pop(9), vmballoon_work(9), vmballoon_shrinker_scan(9), vmballoon_shrinker_count(9), vmballoon_debug_show(9).

like, the whole group chat. iykyk 🧚


and that's the page!! mwah πŸ’‹ this cutie lives at ./drivers/misc and the date stamp on her is October 2026 ⭐ so if you're reading this in any other month, respectfully, time travel. bye bestie, go migrate something responsibly πŸŽˆπŸ’œ

πŸ“¦ where this page comes from