Real per-VM log persistence: source attribution + ACL pin (FABRIC-3.md §XXVII)
Wires the previously-unused vm_log_attributed_vm() into LOG-APPEND's kernel primitive so persisted log records carry a trustworthy source (the real attributed VM's registry name, or "HADES" pseudo-source) instead of a caller-supplied, trivially forgeable string. Drops src-addr/src-u from LOG-APPEND's stack signature accordingly. Pins LOG-APPEND via bare ACL-PIN in Artemis's own init.4th, matching BIRTH/CAPSULE-BIRTH's precedent for a privileged word that can't reach the shared, host-portable ACL.4th. Also fixes two console-banner nitpicks: a mis-rendering em dash (U+2014) in the boot banner, and drops "Emergency" from the CLI banner text. Doc corrections to artemis_sig.h/zuse_eligibility_list.h reconciling the three fixed devblock ranges now in play. LOG-FLUSH (the intended normal entry point) and level-aware log eviction remain open, flagged not fixed. Re-verified clean boot to ok> on all 3 architectures after every change. riscv64 showed one new, unrelated virtio_blk write-timeout anomaly during Artemis's early physics self-test (self-recovered, boot unaffected, sector doesn't map to the log region) -- flagged, not investigated. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016UNhH1mhi52i6Qihh7ZV5S
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
61755fde78
commit
2a30212bd3
@@ -151,15 +151,27 @@ typedef struct {
|
||||
* boundary" convention homeblocks_sig_t
|
||||
* uses for an identity's own pool. */
|
||||
|
||||
uint32_t log_region_offset; /* Devblock offset where the growable
|
||||
* per-VM log-persistence region starts;
|
||||
* 0 = not yet allocated. */
|
||||
uint32_t log_region_devblocks; /* Current reserved size of the log
|
||||
* region, in devblocks -- grows over
|
||||
* time (same growable-reservation
|
||||
* mechanism the metadata fence design
|
||||
* already uses elsewhere), not a single
|
||||
* fixed guess made once at genesis. */
|
||||
uint32_t log_region_offset; /* CORRECTION, Step 4 (log_region.h,
|
||||
* 2026-09-13): stays 0 -- informational
|
||||
* field only, never written or read by
|
||||
* the real implementation. The log
|
||||
* region ended up at a fixed, compile-
|
||||
* time devblock_from_top constant
|
||||
* (LOG_REGION_DEVBLOCK_FROM_TOP_BASE,
|
||||
* log_region.h) reached through
|
||||
* blk_meta_zone_*(), whose own control
|
||||
* header (log_region_ctrl_t) is the one
|
||||
* authoritative source of the region's
|
||||
* live offset/size/head/tail -- a second
|
||||
* writer of the same fact here would be
|
||||
* unnecessary drift risk, not a useful
|
||||
* summary. Left at 0/reserved rather
|
||||
* than deleted, in case a real second
|
||||
* reader (a host-side offline tool that
|
||||
* can't run blk_meta_zone_*() at all)
|
||||
* ever needs it. */
|
||||
uint32_t log_region_devblocks; /* See log_region_offset above -- same
|
||||
* reasoning, stays 0. */
|
||||
|
||||
uint64_t hdr_crc; /* Computed over every field above this
|
||||
* one, same boundary/discipline as
|
||||
|
||||
Reference in New Issue
Block a user