ASID control

ASID Control #

The ASID (Address Space IDentifier) control capability is used to manage pools of address space identifiers. The only operation supported by the ASID pool capability is “MAKE_POOL”, which is used to allocate pools of address space IDs. Each VSpace must be assigned an ASID before use; see ASIDPool::ASSIGN.

The number of ASID pools available on each system is fixed. Userspace is responsible for allocating ASIDs and unmapping VSpaces to manage the finite supply per userspace policy.

The number of pools available are:

Arch Number of pools ASIDs per pool
aarch64 8* 512*
x86_64 8 512

* Subject to change

Operations #

ASIDControl::MAKE_POOL #

Creates an ASIDPool from this capability.

Parameters #

This operation accepts no parameters.

Capabilities #

CSlot Usage Type Details
0 In Memory Allocate pool from this capability
1 Out CAddr Capability slot for new ASIDPool

Results #

Error code Meaning
NONE Success
NOMEM Insufficient memory to allocate pool
NOMEM No more pools available (hard limit reached)