xe_bo_move_notify(9)
π xe_bo_move_notify(9) β Kernel API Manual, bestie edition
Okay so real quick, this page lives in the Kernel API Manual and it's literally all about telling everybody "hey, this buffer's about to move" before it actually does. Let's get into it π«Ά
β¨ NAME β¨
xe_bo_move_notify β notify subsystems of a pending move
Like, a heads-up text in the group chat before you start moving furniture, y'know?
π¦ SYNOPSIS π¦
int xe_bo_move_notify (struct xe_bo *bo , const struct ttm_operation_ctx
*ctx );
πΈ ARGUMENTS πΈ
boβ the buffer object in question, the main character of this whole operation πctxβ thestruct ttm_operation_ctxthat's controlling locking and waits. It's giving "adult supervision" energy ngl.
π DESCRIPTION π
So this function notifies subsystems that a buffer move is coming up. Like, upcoming, not happening right now. Rude to not warn a girl first, honestly.
When a subsystem gets this notification, it should schedule halting access to the underlying pages β and it optionally can add a fence to the buffer object's dma_resv object, which signals when access is stopped. Slay, that's how you communicate boundaries β¨
The caller will wait on all dma_resv fences before starting the move. No cutting the line, no skipping the wait, no cap.
A subsystem may commence access to the object after obtaining bindings to the new backing memory under the object lock. So like, you get the keys to the new place first, then you can start moving your stuff in. Periodt. π
π₯ RETURN π₯
0on success β ate, no notes π-EINTRor-ERESTARTSYSif interrupted in fault mode β like getting a call mid-nap π- a negative error code on error β yeah, that's the "it's giving problems" case π
π SEE ALSO π
Kernel file ./drivers/gpu/drm/xe/xe_bo.c and, honestly, the whole extended friend group:
xe_bo_has_single_placement(9)xe_bo_is_stolen_devmem(9)xe_bo_is_vm_bound(9)xe_bo_pin_account(9)xe_bo_unpin_account(9)xe_bo_is_visible_vram(9)xe_bo_set_purgeable_shrinker(9)xe_bo_set_purgeable_state(9)xe_ttm_bo_purge(9)xe_bo_shrink(9)xe_bo_notifier_prepare_pinned(9)xe_bo_notifier_unprepare_pinned(9)xe_bo_evict_pinned(9)xe_bo_restore_pinned(9)xe_bo_read(9)xe_bo_alloc(9)xe_bo_free(9)xe_bo_init_locked(9)xe_bo_create_locked(9)xe_bo_create_user(9)xe_bo_create_pin_range_novm(9)xe_bo_create_pin_map_at_novm(9)xe_bo_create_pin_map(9)xe_bo_create_pin_map_novm(9)xe_managed_bo_reinit_in_vram(9)xe_bo_pin_external(9)xe_bo_pin(9)xe_bo_unpin_external(9)xe_bo_validate(9)xe_bo_decompress(9)xe_bo_lock(9)xe_bo_unlock(9)xe_bo_can_migrate(9)xe_bo_migrate(9)xe_bo_evict(9)xe_bo_needs_ccs_pages(9)__xe_bo_release_dummy(9)xe_bo_put_commit(9)xe_bo_dev_init(9)xe_bo_dev_fini(9)xe_bo_dumb_create(9)
okay that's the whole page, you're officially smarter than you were three minutes ago, i'm so proud of you bestie π§π
Oh and for the record β this one's from ./drivers/gpu/drm/xe, dated October 2026, and yes the date is in the future, don't ask, we don't question the timeline here β
π¦ 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