Build DOE-PERSIST-TRIAL: block-backed DoE campaign persistence, live-verified
FABRIC-3.md §XXXV.3/.4 designed this and it was never built -- two live campaigns got launched relying entirely on a live serial-log tail before this was caught. doe_region.c/.h mirrors log_region.c's own growable-ring pattern (own devblock_from_top fence at 98, past log_region's ceiling at 97) to persist one trial-summary record per completed trial straight to disk/artemis.img, surviving past QEMU exit with no host required. Verified end to end: booted amd64, called DOE-PERSIST-TRIAL at the console, clean BYE, then read the raw disk bytes back with QEMU fully dead -- confirmed the exact values passed in. Wired into both multiuser-doe.4th and per-isa-doe.4th's trial markers. Clean build, zero new warnings, all 3 ISAs; mkcapsule --lint passes both edited capsules. FABRIC-3.md §XXXV.10 documents the fix and the root-cause correction: two campaigns were launched on an unbuilt persistence design before this was caught and fixed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BWpNjdwPtFLuVLaAq44L9K
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
8b8e8e1405
commit
2da746c01c
+4
-2
@@ -458,7 +458,8 @@ LOADER_SRCS_BASE := \
|
||||
$(KERNEL_SRC)/heartbeat.c \
|
||||
$(KERNEL_SRC)/homeblocks_sig.c \
|
||||
$(KERNEL_SRC)/artemis_sig.c \
|
||||
$(KERNEL_SRC)/log_region.c
|
||||
$(KERNEL_SRC)/log_region.c \
|
||||
$(KERNEL_SRC)/doe_region.c
|
||||
|
||||
LOADER_ASM := \
|
||||
$(KERNEL_SRC)/arch/$(ARCH)/boot.S \
|
||||
@@ -516,7 +517,8 @@ KERNEL_SRCS_BASE := \
|
||||
$(KERNEL_SRC)/heartbeat.c \
|
||||
$(KERNEL_SRC)/homeblocks_sig.c \
|
||||
$(KERNEL_SRC)/artemis_sig.c \
|
||||
$(KERNEL_SRC)/log_region.c
|
||||
$(KERNEL_SRC)/log_region.c \
|
||||
$(KERNEL_SRC)/doe_region.c
|
||||
|
||||
KERNEL_ASM := $(wildcard $(KERNEL_SRC)/arch/$(ARCH)/*.S)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user