xe_bo_create..._map_at_novm(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ xe_bo_create..._map_at_novm(9) πŸ’œ

okay so bestie, we're deep in the Kernel API Manual today β€” this one's a real drm/xe deep-lore page and honestly it's kind of iconic once you get past the name, which is a whole mouthful ngl 🫢


✨ NAME ✨

xe_bo_create_pin_map_at_novm β€” the girlie that creates a pinned and mapped bo, and she'll even do it at an optional VRAM offset if you ask nicely πŸ’…


🌸 SYNOPSIS 🌸

struct xe_bo * xe_bo_create_pin_map_at_novm (struct xe_device *xe ,
struct xe_tile *tile , size_t size , u64 offset , enum ttm_bo_type type
, u32 flags , u64 alignment , bool intr );

like yes, that's a lot of arguments. she's high-maintenance. she's worth it. πŸ’–


πŸŽ€ ARGUMENTS πŸŽ€

  • xe β€” the xe device, obviously. your main character. πŸ‘‘
  • tile β€” the tile you're picking for the migration of this bo, and also the tile used for GGTT binding if there is any. heads up though: only let this be non-NULL for ttm_bo_type_kernel bos, ok? no cap.
  • size β€” the storage size to use for the bo. πŸ“
  • offset β€” optional VRAM offset, or ~0ull for "don't care", which is the most relatable value in this whole manpage honestly πŸ™ˆ
  • type β€” the TTM buffer object type.
  • flags β€” the XE_BO_FLAG_ flags. 🚩
  • alignment β€” GGTT alignment.
  • intr β€” whether to execute any waits for backing store interruptible. i.e., are we being polite about signals or not.

πŸ¦‹ DESCRIPTION πŸ¦‹

so what she does is: create a pinned and optionally mapped bo, and she's got options, ok? VRAM offset options, GGTT alignment options β€” the whole vibe menu ✨

the bo comes out external and not associated with a VM. that's the whole point. she's free-floating. she's not tied down. main character energy fr fr πŸ’€


⭐ RETURN ⭐

on success you get the buffer object. slay. πŸŽ‰

on failure you get a negative error pointer β€” which, yeah, sounds ominous, but that's just how we do it around here.

and in particular β€” listen up β€” the function may return ERR_PTR(-EINTR) if intr was set to true on entry. so if you set intr and then act surprised about -EINTR... bestie. 😭 that's on you.


🌈 SEE ALSO 🌈

the whole friend group, honestly. this section is a group chat and everyone's in it:

Kernel file ./drivers/gpu/drm/xe/xe_bo.c 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_move_notify(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(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)

like. that's a lot of xe_bo functions. she knows everyone. iykyk πŸ’…


and that's the page, bestie 🧚 this lil doc lives in ./drivers/gpu/drm/xe (that's the source/version, mwah), stamped October 2026, and it's filed under xe_bo_create..._map_at_novm(9) β€” go forth and pin responsibly πŸ“πŸ’œ

πŸ“¦ where this page comes from