xe_bo_create_locked(9)
π xe_bo_create_locked β from the Kernel API Manual, bestie π
okay so this is xe_bo_create_locked(9), and yes it's exactly as iconic as it sounds. dramatic name, locked BO, main character energy. let's get into it β¨
πΈ NAME πΈ
xe_bo_create_locked β literally just Create a BO. that's the whole pitch. no notes. periodt.
π SYNOPSIS π
struct xe_bo * xe_bo_create_locked (struct xe_device *xe , struct
xe_tile *tile , struct xe_vm *vm , size_t size , enum ttm_bo_type type ,
u32 flags , struct drm_exec *exec );
the way that signature goes on for a whole three lines π she's got range.
π¦ ARGUMENTS π¦
xeβ Thexedevice. your fave. the whole reason we're here π«Άtileβ The tile to select for migration of this bo, and the tile used for GGTT binding if any. Important: only to be non-NULL forttm_bo_type_kernelbos β so like, don't just hand it anything, iykyk.vmβ The local vm, orNULLfor external objects. she's flexible like that.sizeβ The storage size to use for the bo. how much space she's serving.typeβ The TTM buffer object type. classic.flagsβXE_BO_FLAG_flags. slay, options.execβ Thedrm_exectransaction to use for exhaustive eviction. she's thorough, we respect it.
π DESCRIPTION π
Create a locked xe BO with no range- nor alignment restrictions. that's it. that's the vibe. no restrictions, no drama, just a locked BO being created. obsessed π§
β RETURN β
- The buffer object on success β¨
- Negative error pointer on failure π
π SEE ALSO π
the Kernel file ./drivers/gpu/drm/xe/xe_bo.c (our source, our blueprint, our ancestor π) plus this whole group chat of neighbours β every single one, no skipping, this is a full roster:
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_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)β yes that double underscore is on purpose, don't come for her πxe_bo_put_commit(9)xe_bo_dev_init(9)xe_bo_dev_fini(9)xe_bo_dumb_create(9)
fr fr go read at least three of these before you ping me. i'm not being mean, i'm being a good friend π«Ά
and that's the page!! sourced straight out of ./drivers/gpu/drm/xe, dated October 2026, filed under xe_bo_create_locked(9) β like a little time capsule from the future, cute right? π bye bestie, go make some BOs π
β¨
π¦ 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