NUMA topology initialization and deterministic placement helpers — implementation.
More...
|
|
constexpr auto | zxfoundation::memory::numa::detail::align_down_page (u64 value) noexcept -> u64 |
|
constexpr auto | zxfoundation::memory::numa::detail::align_up_page (u64 value) noexcept -> u64 |
|
auto | zxfoundation::memory::numa::detail::apply_cpu_record (u32 logical_cpu, const arch::s390x::init::zxfl::cpu_info &cpu) noexcept -> void |
|
auto | zxfoundation::memory::numa::detail::apply_memory_region (const arch::s390x::init::zxfl::mem_region ®ion) noexcept -> void |
|
auto | zxfoundation::memory::numa::detail::build_synthetic_slit () noexcept -> void |
| | Fill g_slit with the synthetic 10/20/40 fallback layout.
|
|
auto | zxfoundation::memory::numa::cpu_distance (u16 cpu_a, u16 cpu_b) noexcept -> u8 |
| | Return the distance between two logical CPUs by way of their assigned NUMA nodes.
|
|
auto | zxfoundation::memory::numa::detail::finalize_node (zxfoundation::memory::numa::node_topology &node) noexcept -> void |
|
auto | zxfoundation::memory::numa::detail::finalize_topology () noexcept -> void |
| auto | zxfoundation::memory::numa::generation () noexcept -> u64 |
| | Return the current topology generation.
|
| auto | zxfoundation::memory::numa::has_loader_memory_evidence () noexcept -> bool |
| | Report whether topology contains loader-provided memory evidence.
|
| auto | zxfoundation::memory::numa::init (const arch::s390x::init::zxfl::protocol &protocol) noexcept -> std::expected< void, lib::kernel_error > |
| | Initialize immutable NUMA topology from the ZXFL boot protocol.
|
| auto | zxfoundation::memory::numa::initialized () noexcept -> bool |
| | Report whether NUMA topology has been initialized.
|
|
constexpr auto | zxfoundation::memory::numa::detail::invalid_argument () noexcept -> lib::kernel_error |
|
auto | zxfoundation::memory::numa::detail::is_initialized_or_error () noexcept -> std::expected< void, lib::kernel_error > |
|
auto | zxfoundation::memory::numa::detail::known_node_count () noexcept -> u8 |
| auto | zxfoundation::memory::numa::node_at (u8 node_id) noexcept -> std::expected< const node_topology *, lib::kernel_error > |
| | Read one NUMA node record.
|
| auto | zxfoundation::memory::numa::node_count () noexcept -> u8 |
| | Count NUMA node records known to the topology table.
|
| auto | zxfoundation::memory::numa::node_distance (u8 node_a, u8 node_b) noexcept -> u8 |
| | Read NUMA distance between two nodes (units: 10 local … 255 max).
|
| auto | zxfoundation::memory::numa::node_for_cpu (u16 cpu_id) noexcept -> std::expected< u8, lib::kernel_error > |
| | Resolve a logical CPU to its preferred NUMA node.
|
| auto | zxfoundation::memory::numa::node_for_pfn (u64 pfn) noexcept -> std::expected< u8, lib::kernel_error > |
| | Resolve a page-frame number to a NUMA node.
|
| auto | zxfoundation::memory::numa::node_for_phys (u64 phys) noexcept -> std::expected< u8, lib::kernel_error > |
| | Resolve a physical address to a NUMA node.
|
| auto | zxfoundation::memory::numa::node_of_cpu (u16 cpu_id) noexcept -> u8 |
| | Return the NUMA node id assigned to a logical CPU.
|
|
auto | zxfoundation::memory::numa::detail::node_record (u8 node_id, u8 drawer_id, zxfoundation::memory::numa::topology_source source) noexcept -> zxfoundation::memory::numa::node_topology * |
|
constexpr auto | zxfoundation::memory::numa::detail::out_of_range () noexcept -> lib::kernel_error |
|
auto | zxfoundation::memory::numa::detail::reset_state () noexcept -> void |
| auto | zxfoundation::memory::numa::resolve_policy (const allocation_policy &policy, u8 local_node) noexcept -> std::expected< placement_result, lib::kernel_error > |
| | Resolve an allocation policy into an initial placement decision.
|
|
constexpr auto | zxfoundation::memory::numa::detail::sanitize_node_id (u8 node_id) noexcept -> u8 |
| auto | zxfoundation::memory::numa::slit_install (const slit_matrix &matrix, bool stsi_ok) noexcept -> void |
| | Install a fully-resolved SLIT matrix from an outside evidence.
|
| auto | zxfoundation::memory::numa::slit_load_synthetic () noexcept -> void |
| | Sealed-synthetic fallback installer.
|
| auto | zxfoundation::memory::numa::slit_source_kind () noexcept -> u32 |
| | Diagnostics: report the SLIT table source.
|
|
auto | zxfoundation::memory::numa::detail::synthesize_boot_node () noexcept -> void |
|
constexpr auto | zxfoundation::memory::numa::detail::uninitialized () noexcept -> lib::kernel_error |
|
constexpr auto | zxfoundation::memory::numa::detail::usable_pages_in_range (u64 base, u64 length) noexcept -> u64 |
| auto | zxfoundation::memory::numa::uses_synthetic_fallback () noexcept -> bool |
| | Report whether the current topology had to synthesize the boot node.
|
|
|
std::array< u8, zxfoundation::base::config::CONFIG_ZX_MAX_CPUS > | zxfoundation::memory::numa::detail::g_cpu_to_node {} |
|
u64 | zxfoundation::memory::numa::detail::g_generation {0ULL} |
|
bool | zxfoundation::memory::numa::detail::g_initialized {false} |
|
std::array< node_topology, MAX_NUMA_NODES > | zxfoundation::memory::numa::detail::g_nodes {} |
|
zxfoundation::memory::numa::slit_matrix | zxfoundation::memory::numa::detail::g_slit {} |
| | Single source of truth for NUMA distances — the SLIT matrix.
|
|
slit_source | zxfoundation::memory::numa::detail::g_slit_source {slit_source::uninitialized} |
|
constexpr u64 | zxfoundation::memory::numa::detail::U64_MAX_VALUE = ~0ULL |
NUMA topology initialization and deterministic placement helpers — implementation.
SPDX-License-Identifier: Apache-2.0