Expand description
The core functionality of a monolithic kernel, including loading user programs and managing processes.
Published page tables have no external mutable escape hatch. Callers must use the address-space mutation APIs, which own TLB invalidation and deferred reclaim:
ⓘ
fn bypass_mm_owner(aspace: &mut starry_kernel::mm::AddrSpace) {
let _page_table = aspace.page_table_mut();
}Modules§
Macros§
- debug
- Dynamic debug macro. When
dynamic_debugfeature is enabled, uses per-callsite static key for runtime control via/proc/dynamic_debug/control. Otherwise falls back tolog::debug!. - debug_
fn - Dynamic debug macro. When
dynamic_debugfeature is enabled, uses per-callsite static key for runtime control via/proc/dynamic_debug/control, and also prints the function name of the callsite. Otherwise falls back tolog::debug!.
Structs§
- Activation
Lease - A per-CPU activation. The scheduler owns the value and must consume/drop it only after installing another root or the kernel root.
- Address
Space CpuState - Scheduler-visible per-CPU state.
active_cpusmeans that translations for this address space may still exist in those CPUs’ TLBs; it is deliberately not an affinity mask. - Address
Space Id - Monotonic identity independent from a page-table root physical address.
- Address
Space Tag - Hardware TLB tag plus software generation.
- Anonymous
Source - Applied
Mutation - Errno
- Eviction
Lease - Ownership token held while a page’s reverse mappings are being revoked.
- External
Source - File
Source - Frame
Lease - A bounded capability for a physical frame range owned by a PageObject.
Allocation/deallocation policy remains in the architecture allocator; the
MM layer never treats a bare
PhysAddras ownership. - Installed
Page Table Root - Root and identity installed by the scheduler on one CPU.
- Linear
Source - Mapping
Delta - Mapping
Group - Mapping
Id - Mapping
Permissions - Permission views carried by one mapping operation. Keeping current, user-visible and maximum rights together prevents a caller from accidentally treating a lowered permission as the immutable VM envelope.
- Mapping
Slot - Ownership record for one installed PTE.
- Mapping
Slot Key - MmHandle
- Explicit process ownership of an address space.
- MmPin
- Short-lived kernel ownership. It is safe to drop in IRQ context because only counters and preallocated queue links are touched; actual page-table destruction belongs to the sleepable reclaimer.
- Mutation
Gate - Serialization point for all VMA/PTE publication.
- Mutation
Receipt - PageId
- Page
Object - Page
Offset - Page
Order - Prepared
Mutation - Pre-publication transaction. Dropping this value is an abort and never changes the published address-space epoch.
- PteDelta
- Published
Mutation - Published
Pending Tlb - Quarantine
Failure - Failure to record a TLB obligation while retaining ownership of the frame that must not be released yet.
- Repair
Permit - Returns address spaces whose last reclaim attempt entered
NeedsRepair. The caller may repair the backend and invokeRepairPermit::retryfor each returned permit; no cleanup is attempted implicitly. - Resident
Delta - Retire
Permit - Permission to perform potentially sleeping destruction after quiescence.
- RmapSet
- Reverse mappings are explicit records rather than an implicit scan of all VMAs. A slot remains in this set until its PTE invalidation is acknowledged.
- Swap
Token - A stable token identifying a future swap-cache entry.
- TlbQuarantine
- Holds detached frames until every CPU named by a shootdown acknowledges it.
- TlbRange
- TlbRequest
- A shootdown obligation. It is deliberately independent of the platform IPI implementation so a timeout cannot be mistaken for a completed flush.
- Unsupported
Swap - Default provider used until a swap device is wired into Starry.
- VmaDelta
- VmaId
- VmaMap
- A persistent, path-copy interval tree.
- VmaSnapshot
- Stable metadata copied out of the mutable legacy backend. A snapshot may safely cross a lock boundary or a sleeping page-cache operation.
- Writeback
Lease - Pins a PageObject while one dirty-generation snapshot is protected.
Enums§
- Activation
Error - Clone
User RefError - DmaOperation
- The operation that gives a DMA-domain failure its Linux ABI meaning.
- Eviction
Error - Eviction
Result - Mapping
Source - Origin of a mapping. The payload types keep source-specific metadata out of the VMA interval tree while still making a source transition explicit.
- MmState
- Mutation
Error - Mutation
State - Page
Size Policy - Page
State - PinError
- Publish
Event - Quarantine
Error - Reclaim
Error - Slot
State - Starry
Error - Errors owned by the Starry kernel below the Linux syscall ABI boundary.
- Swap
Error - TagMode
- Writeback
Error
Traits§
- Swap
Provider - Capability boundary for anonymous swap.
Functions§
- allocate_
vma_ id - Creates a process-wide unique VMA identifier.
- request_
repair_ retry - Requests one explicit repair retry pass on the sleepable reclaimer.
- take_
repair_ candidates
Type Aliases§
- CpuMask
- Architecture-neutral active-CPU bitset. Platform code can replace this alias with a wider mask without changing the ownership API.
- Installed
Address Space - Name used by scheduler code that treats the root, identity, tag and epoch as one installed context.
- Mapping
Rights - Stable name for the permissions carried by a VMA. The architecture mapping implementation still supplies the bit layout, while callers no longer need to depend on the page-table module’s concrete type.
- Starry
Result - A result returned by Starry-owned kernel operations.
- Vma
- Public name used by callers that do not need to know that snapshots are copied out of the publication root.