Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Global / Singleton Address Index

Binary: extracted/aws-neuronx-runtime-lib_2.31.24.0-0b044f4ce_amd64/opt/aws/neuron/lib/libnrt.solibnrt.so.1libnrt.so.2.31.24.0 · Version 2.31.24.0-0b044f4ce (.nrt_brazil_version @0xad41f0 = "2.31.24.0") · BuildID[sha1] 8bb57aba0fb2e0035f1d88e9fc4fb3e7387c102e · ELF64 LSB DYN x86-64, NOT stripped, DWARF v4.

Part XVI — Appendices / REFERENCE lookup index · every address/size below is the nm -nS --defined-only / readelf -rW value carried by the Globals and Singletons Atlas; this page re-sorts those audited values by address for symbol→addr→page lookup.

Abstract

This is the flat, address-sorted lookup index to libnrt.so's writable global state. The companion Globals and Singletons Atlas is the explanatory map — it groups the same globals by kind (config singletons, per-arch ops vtables, dlopen handle tables, error/status globals, dispatch/jump tables) and carries the full init-by / read-by provenance and the reimplementation rationale. This page does the opposite job: it dumps every significant global into one table sorted by ascending address, so a reader who has an address from a disassembler — or a symbol name and wants its address, size, section, and owning page — gets the answer in a single scan. The atlas explains; this page indexes. The two share one set of nm-verified addresses by construction.

Every address here is read from this exact binary (nm -nS --defined-only for symbol/addr/size/section nibble, readelf -rW for the .data.rel.ro R_X86_64_RELATIVE relocations that wire each pointer slot) and is identical to the value the atlas carries; where the working notes and the atlas disagreed, the atlas's nm-verified value is authoritative and is the one indexed here (see the CORRECTION callout). The single structural fact that governs the table: the .bss symbols are NOBITS — zero on disk. The per-arch vtables (kaena_khal, tdrv_arch_ops, the csr_regions_v*) and the dlsym function-pointer stores have no bytes in the file; their slots exist only as stores emitted inside the lazily-run register_* / *_init / ucode_init_module installers. An address into one of those symbols is reconstructable from the installer's decompiled stores, never from a static hexdump.

Index scopeevery first-party global in the Globals Atlas + the per-arch RELRO seed tables, sorted by address
Section bands.data.rel.ro 0xbf2d800xc05540 · .data 0xc07e000xc37c20 · .bss 0xc37c400xcb4300
.bss caveatNOBITS — vtable/store slots are zero on disk, filled by register_* installers at bring-up
Provenanceinit-by / read-by per global lives in the atlas; this page indexes, the atlas explains
Section geometryBinary Layout — VMA==file-offset (delta 0) for all loadable sections

Section-band legend

The Kind column classifies each global by the section discipline established in Binary Layout and the atlas. Three bands carry first-party state; read the band to know whether a structure is static-in-file or runtime-filled.

BandVMA rangeHoldsOn disk
.data.rel.ro0xbf2d800xc05540 (0x127c0 B)RELRO pointer/string tables: ucode_func_symbols, per-arch *_hw_port_names / *_instr_block_caps seeds, C++ vtablespresent (relocated, then read-only)
.data0xc07e000xc37c20 (0x2fe20 B)const-valued dispatch tables: nrt_init_state_strings, queue-bundle alloc tables, sequencer_error_subtypes_str, all_reduce_128bpresent (initialized)
.bss0xc37c400xcb4300 (0x7c6c0 B)mutable singletons, per-arch vtables, dlsym stores, per-engine arrays, locks, error-log ringNOBITS — zero

NOTE — this page indexes; the atlas explains. The init-by (which constructor or register_* installer first writes a valid value) and read-by (the principal consumer) of every row below are owned by the Globals and Singletons Atlas, grouped by kind. Do not re-derive that provenance from this table — it carries only the lookup keys (symbol, addr, size, section, kind) plus the owning page. Follow the atlas link for the installer chain and the per-global GOTCHA/QUIRK notes.


Address-sorted master index

One row per significant first-party global, sorted by ascending address. Section is the nm band; Kind is the section-discipline class (RELRO seed / RELRO dlsym dir / const dispatch / mutable singleton / per-arch vtable / dlsym store / per-engine array / lock / handle). Owning page is the exact SUMMARY path that documents the global's semantics or per-slot geometry. Conf mirrors the atlas's confidence.

SymbolAddressSizeSectionKindOwning pageConf
ucode_func_symbols0xbf2ea00x1e0.data.rel.roRELRO dlsym directory (ucode_symbol_t[30])gpsimd/ucode-facade.mdHIGH
mariana_hw_port_names0xbf30a00x68.data.rel.roRELRO per-arch port-name seedruntime/hal-adapter.mdHIGH
cayman_hw_port_names0xbf32600x68.data.rel.roRELRO per-arch port-name seedruntime/hal-adapter.mdHIGH
sunda_hw_port_names0xbf34200x68.data.rel.roRELRO per-arch port-name seedruntime/hal-adapter.mdHIGH
cayman_instr_block_caps0xbf36800x20.data.rel.roRELRO const struct → tdrv_arch_ops +248runtime/tdrv-arch-ops.mdHIGH
mariana_instr_block_caps0xbf37600x20.data.rel.roRELRO const struct → tdrv_arch_ops +248runtime/tdrv-arch-ops.mdHIGH
all_reduce_128b0xc07e200xaad.dataconst collectives blobcollectives/overview.mdLOW
nrt_init_state_strings0xc089000x20.dataconst const char*[4] (RELATIVE→.rodata)runtime/api-lifecycle.mdHIGH
v3_queue_bundle_alloc_table0xc08bc00x170.dataconst DMA alloc value table (no relocs)neff/load-pipeline.mdMED
v2_queue_bundle_alloc_table0xc08d400x1e0.dataconst DMA alloc value table (no relocs)neff/load-pipeline.mdMED
sequencer_error_subtypes_str0xc091a00x400.dataconst string-ptr table (12 RELATIVE relocs)exec/completion-engine.mdMED
ccschedxu (_ZL9ccschedxu)0xc37c600x8800.bssper-engine array (collectives schedule xu)exec/xu-workers.mdMED
ccprepxu (_ZL8ccprepxu)0xc404600x8800.bssper-engine array (collectives prepare xu)exec/xu-workers.mdMED
tensoropxu (_ZL10tensoropxu)0xc48c600x11000.bssper-engine array (tensor-op xu state)exec/xu-workers.mdMED
bs (_ZL2bs)0xc59c600x2800.bssper-engine array (barrier_state_t[])runtime/api-async-collectives.mdMED
ngc0xc5c4608.bssmutable singleton (nrt_global_config_t*, heap 296 B)runtime/config-structs.mdHIGH
nrt_config0xc5c4800x290.bssmutable singleton (env/NEFF config, 656 B)runtime/config-structs.mdHIGH
dlr_model_set (_ZL13dlr_model_set)0xc5c7200x78.bssmutable singleton (std::set)exec/kmgr-facade.mdMED
seen_neff_lock0xc5c7c00x28.bsslock (pthread_mutex_t)exec/kmgr-facade.mdMED
global_lock0xc5c8800x38.bsslock (pthread_mutex_t)runtime/overview.mdMED
session_ctx (_ZL11session_ctx)0xc5c9000x840.bssmutable singleton (profiler per-NC ctx)trace/inspect-profile-api.mdHIGH
nrt_init_state0xc5d1a04.bssmutable singleton (NRT_INIT_STATE enum)runtime/api-lifecycle.mdHIGH
host_stats_default (_ZL18host_stats_default)0xc5d1e00x138.bssmutable singleton (ntff host-stats default)trace/telemetry-errors.mdMED
nrt_vnc_usage_lock0xc5d3200x28.bsslock (pthread_mutex_t)runtime/api-device-config.mdHIGH
nrt_vnc_usage_vnc_count0xc5d3484.bssmutable singleton (vnc count)runtime/api-device-config.mdHIGH
nrt_vnc_usage (_ZL13nrt_vnc_usage)0xc5d3600x400.bssper-engine array (per-vNC usage table)runtime/api-device-config.mdHIGH
tnc_lock (_ZL8tnc_lock)0xc5d8400x28.bsslock (pthread_mutex_t)neff/load-pipeline.mdHIGH
tnc (_ZL3tnc)0xc5d8800x48.bssmutable singleton (temp-NEFF-cache slot)neff/load-pipeline.mdHIGH
async_exec_workers0xc5d8c88.bssmutable singleton (async-exec worker handle)exec/xu-workers.mdMED
dlr_model_set (additional instance)0xc5d8e00x78.bssmutable singleton (std::set, 2nd)exec/kmgr-facade.mdLOW
pool_count0xc5d9604.bssmutable singleton (handle-pool init guard)exec/xu-workers.mdHIGH
handle_pools0xc5d9800x7000.bssper-engine array (comp_handle_pool_t[], 112 B)exec/xu-workers.mdHIGH
_tpb_xus0xc64a400x24000.bssper-engine array (per-TPB xu state)exec/xu-workers.mdMED
workers (_ZL7workers)0xc88ae00x5800.bssper-engine array (worker-pool)exec/xu-workers.mdMED
async_sr_init_mutex (_ZL19…)0xc8e3600x1400.bsslock (async send/recv init)collectives/send-recv.mdHIGH
async_sr_at_exit_registered0xc8f7601.bssmutable singleton (atexit flag)collectives/send-recv.mdHIGH
async_sr_at_exit_mutex0xc8f7800x28.bsslock (async send/recv atexit)collectives/send-recv.mdHIGH
async_sr_ctxs (_ZL13async_sr_ctxs)0xc8f7c00x400.bssper-engine array (async_sr_context*[128])collectives/send-recv.mdHIGH
async_sr_status (_ZL15async_sr_status)0xc8fbc00x200.bssper-engine array (per-LNC status)collectives/send-recv.mdHIGH
async_sr_ofi_mutex (_ZL18…)0xc8fdc00x1400.bsslock (async send/recv OFI)collectives/send-recv.mdHIGH
async_sr_thread_n0xc911c04.bssmutable singleton (service-thread count)collectives/send-recv.mdMED
g_shared_proxy_queues_lock (_ZL26…)0xc912e00x28.bsslock (pthread_mutex_t)collectives/proxy-driver.mdHIGH
g_shared_proxy_queues (_ZL21…)0xc913200x30.bssmutable singleton (std::map<int,proxy_queue>)collectives/proxy-driver.mdHIGH
libnccl_net_err_msg0xc964200x200.bssmutable singleton (last net-plugin error string)collectives/nccl-boundary.mdMED
libnccl_net_errno0xc966204.bssmutable singleton (last net-plugin errno)collectives/nccl-boundary.mdMED
libnccl_net_handle0xc966288.bssdlopen handle (libnccom net plugin)collectives/nccl-boundary.mdHIGH
nccl_init_error (_ZL15nccl_init_error)0xc966400x178.bssmutable singleton (init-error capture)collectives/nccl-boundary.mdHIGH
libnccom fn-ptr store (neuronInitComm ..)0xc967b80xc968d837×8.bssdlsym store (named slots)collectives/nccl-boundary.mdHIGH
nlog_stdout_is_tty0xc969401.bssmutable singleton (TTY-probe flag)runtime/logging.mdHIGH
nlog_stderr_is_tty0xc969411.bssmutable singleton (TTY-probe flag)runtime/logging.mdHIGH
log_coalescing_enabled0xc969421.bssmutable singleton (log-coalescing flag, ←ngc +212)runtime/logging.mdMED
error_log_mutex0xc969600x28.bsslock (guards error-log ring)runtime/logging.mdHIGH
error_log0xc969900x18.bssmutable singleton (error-log ring)runtime/logging.mdHIGH
ucode_lib_handle0xc96a408.bssdlopen handle (libnrtucode_extisa.so)gpsimd/ucode-facade.mdHIGH
ucode fn-ptr store (ucode_lib_get_api_level ..)0xc96a480xc96b3030×8.bssdlsym store (named slots)gpsimd/ucode-facade.mdHIGH
nds_instances0xc96c000x100.bssper-engine array (nds*[32] per mla_idx)datastore/userspace-libnds.mdHIGH
tdrv_arch_ops0xc971800x1e8.bssper-arch vtable (61-slot, 488 B)runtime/tdrv-arch-ops.mdHIGH
tdrv_arch_ops_initialized0xc973684.bssmutable singleton (init guard)runtime/tdrv-arch-ops.mdHIGH
csr_regions_v20xc973800x300.bssper-arch vtable (CSR region table)runtime/arch-csr-offsets.mdMED
csr_regions_v30xc976800x7e00.bssper-arch vtable (CSR region table)runtime/arch-csr-offsets.mdMED
csr_regions_v40xc9f4800x7e00.bssper-arch vtable (CSR region table)runtime/arch-csr-offsets.mdMED
num_owned_vcores0xca73004.bssmutable singleton (owned-vcore count)runtime/tdrv-lifecycle.mdHIGH
owned_vcores0xca73200x800.bssper-engine array (virtual_core_t*[≤256])runtime/tdrv-lifecycle.mdHIGH
vcores0xca7b400x4000.bssper-engine array (virtual_core_t[256], 64 B)runtime/tdrv-lifecycle.mdHIGH
ctx_vtpb_core_size0xcabb404.bssmutable singleton (vtpb init guard)runtime/tdrv-lifecycle.mdHIGH
stream_locks0xcabb600x2800.bsslock array (pthread_mutex_t[])trace/system-monitor.mdHIGH
streams0xcae3600x800.bssper-engine array (ndebug stream array)trace/system-monitor.mdHIGH
hal_target0xcaeb604.bssmutable singleton (int arch enum)runtime/hal-adapter.mdHIGH
kaena_khal0xcaeb800x7a8.bssper-arch vtable (HAL vtable-of-vtables, ~245 slots)runtime/hal-adapter.mdHIGH

GOTCHA — ctx_vtpb_core_size (0xcabb40) sorts just below stream_locks (0xcabb60). The vtpb init-guard scalar lives at 0xcabb40, immediately below the ndebug stream_locks array at 0xcabb60 — two unrelated subsystems are adjacent in .bss. Address adjacency in .bss is the linker's bookkeeping, not a semantic grouping; index by symbol, never by neighbour. The owning-page column is the only reliable grouping.

QUIRK — the named dlsym stores are address ranges, not single symbols. The ucode store (0xc96a480xc96b30, 30×8) and the libnccom store (0xc967b80xc968d8, 37×8) each carry one named .bss symbol per slot (ucode_lib_get_api_level, neuronInitComm, …) rather than one array symbol. They are indexed here as a single row per range; the per-slot name→symbol mapping is in the atlas dlopen-handle-tables section and the ucode facade.

CORRECTION (GLOBALS-INDEX, nccl error block) — the working notes placed libnccl_net_err_msg (0xc96420) as the only nccl error global and described nccl_init_error as an ostringstream. The nm -nS-verified atlas adds libnccl_net_errno @0xc96620, libnccl_net_handle @0xc96628, and the libnccom fn-ptr store @0xc967b8, and corrects nccl_init_error @0xc96640 to a plain 0x178-byte capture object (not an ostringstream). This index uses the atlas's verified addresses and types throughout.

NOTE — vendored third-party statics are out of scope here. The protobuf descriptor_table_* objects, abseil kOperatorList/kBuiltinTypeList, Rust CONTEXTS/MAPPINGS_CACHE, simdjson jump_table, and libarchive fileflags that also occupy .data.rel.ro/.data/.bss are boundary context, indexed by the Vendored-Library SBOM and listed in the atlas vendored-statics section. This index covers first-party runtime globals only.


Cross-References

  • Globals and Singletons Atlas — the explanatory map this page indexes; groups these globals by kind and carries the per-global init-by / read-by provenance, the installer chains, and the GOTCHA/QUIRK notes
  • Binary Layout — the .data.rel.ro / .data / .bss section geometry, the VMA==file-offset (delta 0) invariant, and the table-location map that places each global class in its band
  • Dispatch-Table Taxonomy — the per-arch vtable dispatch shape, the 222 standing data tables, and the .rodata jump-offset spill arrays this index references but does not list
  • Subsystem ↔ Binary ↔ Source-TU Matrix — the subsystem-to-source-TU map that names the translation unit (nrt_config.cpp, enc.cc, vtpb.c, async_sr.cc, …) behind each owning page in the index