Separate linked-transit identity from rebuilt caches
This commit is contained in:
parent
cd948e47b1
commit
b0c089a340
2 changed files with 97 additions and 10 deletions
|
|
@ -3708,6 +3708,10 @@ pub struct SmpPeriodicCompanyServiceTraceReport {
|
||||||
pub next_owner_questions: Vec<String>,
|
pub next_owner_questions: Vec<String>,
|
||||||
pub linked_transit_shellless_readiness_status: String,
|
pub linked_transit_shellless_readiness_status: String,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
|
pub linked_transit_minimum_persisted_identity_inputs: Vec<String>,
|
||||||
|
#[serde(default)]
|
||||||
|
pub linked_transit_live_rebuilt_cache_lanes: Vec<String>,
|
||||||
|
#[serde(default)]
|
||||||
pub linked_transit_runtime_backed_input_families: Vec<String>,
|
pub linked_transit_runtime_backed_input_families: Vec<String>,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub linked_transit_remaining_owner_gaps: Vec<String>,
|
pub linked_transit_remaining_owner_gaps: Vec<String>,
|
||||||
|
|
@ -4982,6 +4986,20 @@ fn build_periodic_company_service_trace_report(
|
||||||
];
|
];
|
||||||
let linked_transit_shellless_readiness_status =
|
let linked_transit_shellless_readiness_status =
|
||||||
"timed_cache_and_train_side_followons_grounded_site_cache_input_owners_missing".to_string();
|
"timed_cache_and_train_side_followons_grounded_site_cache_input_owners_missing".to_string();
|
||||||
|
let linked_transit_minimum_persisted_identity_inputs = vec![
|
||||||
|
"save-backed company identity, current company id, and linked-transit latch [company+0x0d56] selecting one per-company cache cell root beneath [site+0x5bd][company_id]".to_string(),
|
||||||
|
"save-backed linked-transit route-anchor tuple [company+0x0d35] and fallback count lanes [company+0x7664/+0x7668/+0x766c] feeding the reachable-site strip above 0x00401860 / 0x004801a0".to_string(),
|
||||||
|
"save-backed placed-structure owner and class identity lanes [site+0x276] and [site+0x04] consumed by 0x0047efe0 / 0x0047fd50 before any linked-transit site is marked eligible".to_string(),
|
||||||
|
"save-backed placed-structure and peer identity lanes [site+0x2a4], [site+0x2a8], and [peer+0x04/+0x08] giving the live site and linked-peer ids that the cache rebuilds query".to_string(),
|
||||||
|
"save-backed world calendar lanes [world+0x15] and [world+0x0d] driving refresh cadence, age stamping, and the year-banded policy table used by 0x00408380".to_string(),
|
||||||
|
];
|
||||||
|
let linked_transit_live_rebuilt_cache_lanes = vec![
|
||||||
|
"0x004093d0 stamps [company+0x0d3e], clears each selected [site+0x5bd][company_id] cell, frees and reallocates its peer table at +0x06, repopulates +0x02/+0x06/+0x0a, and marks bytes +0x00/+0x01 from the live site filter".to_string(),
|
||||||
|
"0x004093d0 fills each 0x0d-stride peer row from 0x004a6630, so peer-table dword +0x05 step count and float +0x09 normalized continuity share are rebuilt scratch from live route-entry tracker results".to_string(),
|
||||||
|
"0x00407bd0 clears [site+0x0e/+0x12/+0x16] before folding the rebuilt peer rows plus candidate tables back into weighted/raw/final per-site score lanes".to_string(),
|
||||||
|
"0x00481910 and 0x004819b0 rebuild the local occupancy/count lane [site+0x5c1] from current-site-id resolver 0x004a9340 rather than from any serialized cache blob".to_string(),
|
||||||
|
"0x004aee2b rewrites [site+0x5c5] from world counter [world+0x15], making the chooser age bonus a live rebuilt lane rather than persisted cache state".to_string(),
|
||||||
|
];
|
||||||
let linked_transit_runtime_backed_input_families = vec![
|
let linked_transit_runtime_backed_input_families = vec![
|
||||||
"company linked-transit route-anchor tuple [company+0x0d35] and fallback count lanes [company+0x7664/+0x7668/+0x766c] through 0x00401860".to_string(),
|
"company linked-transit route-anchor tuple [company+0x0d35] and fallback count lanes [company+0x7664/+0x7668/+0x766c] through 0x00401860".to_string(),
|
||||||
"company linked-transit peer-cache refresh absolute counter [company+0x0d3e] driving the shorter 0x00409720 -> 0x004093d0 cadence".to_string(),
|
"company linked-transit peer-cache refresh absolute counter [company+0x0d3e] driving the shorter 0x00409720 -> 0x004093d0 cadence".to_string(),
|
||||||
|
|
@ -4999,8 +5017,8 @@ fn build_periodic_company_service_trace_report(
|
||||||
"linked-transit train-side autoroute append / rotate strip 0x00409770 plus add-train owner 0x00409830 beneath roster balancer 0x00409950".to_string(),
|
"linked-transit train-side autoroute append / rotate strip 0x00409770 plus add-train owner 0x00409830 beneath roster balancer 0x00409950".to_string(),
|
||||||
];
|
];
|
||||||
let linked_transit_remaining_owner_gaps = vec![
|
let linked_transit_remaining_owner_gaps = vec![
|
||||||
"which persisted site-side inputs are sufficient to repopulate the 0x1a-byte per-company cache cells rooted at [site+0x5bd], the local occupancy/age lanes [site+0x5c1/+0x5c5], and the weighted site-score lanes [site+0x0e/+0x12/+0x16] without relying on shell-owned layout or route refresh follow-ons".to_string(),
|
"which placed-structure-side restore or service owner guarantees that the save-backed identity inputs [site+0x276], [site+0x04], [site+0x2a4], [site+0x2a8], and [peer+0x04/+0x08] have already rehydrated the live site and peer tables before 0x004093d0 / 0x00407bd0 rebuild their scratch cache lanes".to_string(),
|
||||||
"which placed-structure-side restore or service owner above 0x00407780 / 0x004077e0 / 0x004093d0 / 0x00407bd0 guarantees those repopulated cache lanes are trustworthy before 0x00408280 / 0x00408380 / 0x00409770 run shelllessly".to_string(),
|
"which higher-layer non-hook owner above 0x00407780 / 0x004077e0 / 0x004093d0 / 0x00407bd0 / 0x004a6630 provides the live route-entry tracker and candidate-table inputs that make those rebuilt lanes trustworthy before 0x00408280 / 0x00408380 / 0x00409770 run shelllessly".to_string(),
|
||||||
];
|
];
|
||||||
|
|
||||||
let companies = analysis
|
let companies = analysis
|
||||||
|
|
@ -5311,6 +5329,8 @@ fn build_periodic_company_service_trace_report(
|
||||||
known_bridge_helpers,
|
known_bridge_helpers,
|
||||||
next_owner_questions,
|
next_owner_questions,
|
||||||
linked_transit_shellless_readiness_status,
|
linked_transit_shellless_readiness_status,
|
||||||
|
linked_transit_minimum_persisted_identity_inputs,
|
||||||
|
linked_transit_live_rebuilt_cache_lanes,
|
||||||
linked_transit_runtime_backed_input_families,
|
linked_transit_runtime_backed_input_families,
|
||||||
linked_transit_remaining_owner_gaps,
|
linked_transit_remaining_owner_gaps,
|
||||||
companies,
|
companies,
|
||||||
|
|
@ -28255,6 +28275,11 @@ mod tests {
|
||||||
trace.linked_transit_shellless_readiness_status,
|
trace.linked_transit_shellless_readiness_status,
|
||||||
"timed_cache_and_train_side_followons_grounded_site_cache_input_owners_missing"
|
"timed_cache_and_train_side_followons_grounded_site_cache_input_owners_missing"
|
||||||
);
|
);
|
||||||
|
assert_eq!(
|
||||||
|
trace.linked_transit_minimum_persisted_identity_inputs.len(),
|
||||||
|
5
|
||||||
|
);
|
||||||
|
assert_eq!(trace.linked_transit_live_rebuilt_cache_lanes.len(), 5);
|
||||||
assert_eq!(trace.linked_transit_runtime_backed_input_families.len(), 14);
|
assert_eq!(trace.linked_transit_runtime_backed_input_families.len(), 14);
|
||||||
assert_eq!(trace.linked_transit_remaining_owner_gaps.len(), 2);
|
assert_eq!(trace.linked_transit_remaining_owner_gaps.len(), 2);
|
||||||
assert_eq!(trace.companies.len(), 1);
|
assert_eq!(trace.companies.len(), 1);
|
||||||
|
|
@ -28683,6 +28708,53 @@ mod tests {
|
||||||
&& line.contains("0x00412560")
|
&& line.contains("0x00412560")
|
||||||
&& line.contains("[site+0x2b4/+0x2b8/+0x2bc]")
|
&& line.contains("[site+0x2b4/+0x2b8/+0x2bc]")
|
||||||
}));
|
}));
|
||||||
|
assert!(
|
||||||
|
trace
|
||||||
|
.linked_transit_minimum_persisted_identity_inputs
|
||||||
|
.iter()
|
||||||
|
.any(|line| line.contains("[site+0x276]")
|
||||||
|
&& line.contains("[site+0x04]")
|
||||||
|
&& line.contains("0x0047efe0 / 0x0047fd50"))
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
trace
|
||||||
|
.linked_transit_minimum_persisted_identity_inputs
|
||||||
|
.iter()
|
||||||
|
.any(|line| line.contains("[site+0x2a4]")
|
||||||
|
&& line.contains("[site+0x2a8]")
|
||||||
|
&& line.contains("[peer+0x04/+0x08]"))
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
trace
|
||||||
|
.linked_transit_live_rebuilt_cache_lanes
|
||||||
|
.iter()
|
||||||
|
.any(|line| line.contains("0x004093d0")
|
||||||
|
&& line.contains("[company+0x0d3e]")
|
||||||
|
&& line.contains("+0x02/+0x06/+0x0a"))
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
trace
|
||||||
|
.linked_transit_live_rebuilt_cache_lanes
|
||||||
|
.iter()
|
||||||
|
.any(|line| line.contains("0x00407bd0")
|
||||||
|
&& line.contains("[site+0x0e/+0x12/+0x16]"))
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
trace
|
||||||
|
.linked_transit_live_rebuilt_cache_lanes
|
||||||
|
.iter()
|
||||||
|
.any(|line| line.contains("0x00481910")
|
||||||
|
&& line.contains("0x004819b0")
|
||||||
|
&& line.contains("0x004a9340"))
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
trace
|
||||||
|
.linked_transit_live_rebuilt_cache_lanes
|
||||||
|
.iter()
|
||||||
|
.any(|line| line.contains("0x004aee2b")
|
||||||
|
&& line.contains("[site+0x5c5]")
|
||||||
|
&& line.contains("[world+0x15]"))
|
||||||
|
);
|
||||||
assert!(
|
assert!(
|
||||||
trace
|
trace
|
||||||
.linked_transit_runtime_backed_input_families
|
.linked_transit_runtime_backed_input_families
|
||||||
|
|
@ -28744,10 +28816,19 @@ mod tests {
|
||||||
trace
|
trace
|
||||||
.linked_transit_remaining_owner_gaps
|
.linked_transit_remaining_owner_gaps
|
||||||
.iter()
|
.iter()
|
||||||
.any(|line| line.contains("0x1a-byte per-company cache cells")
|
.any(|line| line.contains("[site+0x276]")
|
||||||
&& line.contains("[site+0x5bd]")
|
&& line.contains("[site+0x04]")
|
||||||
&& line.contains("[site+0x5c1/+0x5c5]")
|
&& line.contains("[site+0x2a4]")
|
||||||
&& line.contains("[site+0x0e/+0x12/+0x16]"))
|
&& line.contains("[peer+0x04/+0x08]"))
|
||||||
|
);
|
||||||
|
assert!(
|
||||||
|
trace
|
||||||
|
.linked_transit_remaining_owner_gaps
|
||||||
|
.iter()
|
||||||
|
.any(|line| line.contains("0x00407780")
|
||||||
|
&& line.contains("0x004093d0")
|
||||||
|
&& line.contains("0x00407bd0")
|
||||||
|
&& line.contains("0x004a6630"))
|
||||||
);
|
);
|
||||||
assert!(
|
assert!(
|
||||||
trace
|
trace
|
||||||
|
|
|
||||||
|
|
@ -40,11 +40,17 @@ Working rule:
|
||||||
bytes `+0x00/+0x01` gate participation, dwords `+0x02/+0x06/+0x0a` hold peer count, peer
|
bytes `+0x00/+0x01` gate participation, dwords `+0x02/+0x06/+0x0a` hold peer count, peer
|
||||||
pointer, and peer-cache refresh stamp, and floats `+0x0e/+0x12/+0x16` are the
|
pointer, and peer-cache refresh stamp, and floats `+0x0e/+0x12/+0x16` are the
|
||||||
weighted/raw/final score lanes
|
weighted/raw/final score lanes
|
||||||
|
- the persisted-vs-live split is tighter now too:
|
||||||
|
the minimal save-backed identity set is `[site+0x276]`, `[site+0x04]`, `[site+0x2a4]`,
|
||||||
|
`[site+0x2a8]`, `[peer+0x04/+0x08]`, `[company+0x0d35/+0x0d56/+0x7664/+0x7668/+0x766c]`,
|
||||||
|
and world calendar lanes `[world+0x15/+0x0d]`, while the actual cache contents at
|
||||||
|
`[site+0x5bd]`, `[site+0x5c1/+0x5c5]`, and `[site+0x0e/+0x12/+0x16]` are live rebuilt scratch
|
||||||
|
lanes under `0x004093d0 / 0x00407bd0 / 0x00481910 / 0x004819b0 / 0x004aee2b`
|
||||||
- that makes the next linked-transit question narrower:
|
- that makes the next linked-transit question narrower:
|
||||||
identify which persisted site-side inputs are sufficient to repopulate the per-company cache
|
identify which restore or service owner guarantees those save-backed site/peer/company identity
|
||||||
cells, occupancy/age lanes, and weighted site-score lanes consumed by
|
lanes have already rebuilt the live placed-structure, peer, route-entry tracker, and candidate
|
||||||
`0x00408280 / 0x00408380`, because the bounded train-side strip
|
tables consumed by `0x004093d0 / 0x00407bd0 / 0x004a6630`, because the bounded train-side strip
|
||||||
`0x00409770 / 0x00409830 / 0x00409950` is no longer the blocker
|
`0x00409770 / 0x00409830 / 0x00409950` and the cache-cell semantics are no longer the blocker
|
||||||
- Make the next static/rehost slice the near-city industry acquisition owner seam under
|
- Make the next static/rehost slice the near-city industry acquisition owner seam under
|
||||||
`0x004014b0`, not another generic infrastructure pass. The concrete questions are:
|
`0x004014b0`, not another generic infrastructure pass. The concrete questions are:
|
||||||
- which minimum persisted peer-site fields on the already-grounded `0x006cec20` placed-structure
|
- which minimum persisted peer-site fields on the already-grounded `0x006cec20` placed-structure
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue