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) |