Skip to main content

Module relocation

Module relocation 

Source
Expand description

Moving live allocations off outdated pages.

Structs§

ArenaShape
What a relocation plan reads of the pools: how many pages the current one has room on, and what the outdated ones hold and keep guarded.
ArenaState
What a RelocationTrigger reads of the pools a workload’s allocations are carved from.
HostCopies
Copies between the allocations of a BytesStorage: host memory, so a copy is a memcpy and has landed by the time it returns.
Landed
A Relocation whose copies have landed: what the pools commit, and only Relocation::copy makes.
Relocation
Live allocations on outdated pages, each with a slice reserved on a current page to receive it.
RelocationTrigger
Decides when a relocation is worth its copies: what the device holds, and how the last relocation went.
StorageCopy
One device copy a relocation needs, between two resolved storages of the same size.

Enums§

RelocationNeed
Whether a relocation is wanted, before the bytes the device holds are known: plain data, so the caller can gather those bytes from every stream without anything borrowed.
RelocationReason
Why a relocation runs, which decides where it may put what it moves.
TargetRoom
Where a relocation may reserve the slices it moves allocations into.

Traits§

CopyQueue
Where a relocation’s bytes are copied, and what it waits on.
RelocatableStream
One stream, as relocating its memory needs it: what a runtime whose streams share one way to finish their work (a scheduler, say) supplies per stream, leaving the rest of RelocatingStreams to that shared way.
RelocatingStreams
A runtime’s streams, as relocating one stream’s memory needs them.