Files
Snapintosh/tools
Acelogic 49ccf6bf9b tests: cover kernel view reclaim and the 256-table pool
tools/test-view-reclaim.c drives a monitor-shaped kernel tree (one root,
one level 1, four level 2, 512 level 3) the way the retypes do: prepare,
detach, commit, refresh, with kernel_views_quiesce's steps as the
quiesce. After every step, independently of the library: each CPU's
walk of all 16,384 leaves gives the canonical descriptor or, for
selector2/4, its translation under that CPU's PPERM; no reachable page
holds an unpublished store; copies are distinct and never sources; no
store reaches a retired page before the TLBI after its unlinking.
Scenarios: fill to 256, a full pool and a one-slot-short path refuse
with no change, release and reclaim (TXM import, the level-2 ancestor),
reuse of the retired pages before any allocation, reclaim down to the
root, the restart of a two-frame change, read failure, nothing to
retire, unconfigured views and a failed quiesce. A quiesce without its
TLBI and a dropped protected table are caught (harness self-checks).

tools/test-view-reclaim.py runs it, nine weakened sprr-view.c copies
(each must fail: all do), test-kernel-pperm-variants.c with and without
the define, the wiring (default off, guarded uses, cycle, report place
and decoder) and, with --build, the monitor identities.
test-kernel-pperm-variants.c gains reclaim steps under the define:
positions move under the reuse snapshot, publication rows and variant
columns while both machines keep agreeing.

Tests that hard-coded the 128-table shape now derive it from
SPRR_VIEW_TABLES / USER_PUBLISH_MAX (test-tpro-view.c's RAM,
test-user-prepare-fused.c, test-user-fused-compare.c,
test-user-publish.c, test-user-tree-memo.c); define-off they check
exactly what they did.

Results on this tree (host, ASan/UBSan):
  python3 tools/test-view-reclaim.py              PASS (model 20,578
      checks; 9/9 mutants caught; consumers; wiring)
  python3 tools/test-view-reclaim.py --build --qualification
      .../installed-fresh-desktop-20261024-next1/qualification.json
                                                  PASS (absent == =0 ==
      86bb02ea9e03...; =1 459,904 bytes, 15,232 headroom)
  the 26 C suites linking sprr-view.c, with and without
      -DSNAP_VIEW_RECLAIM=1                      PASS (define-off check
      counts equal the base commit's)
Hardware: not run.
2026-10-24 18:53:55 -04:00
..
2026-10-24 18:53:24 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-24 18:53:24 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00
2026-10-21 21:26:36 -04:00