bench_sub_vm_data_recurse/lib.rs
1//! Sub-VM recursive-spawn bench guest with a 64 KiB pinned RO data
2//! mapping. Every recursion level reads (sums) the mapped bytes —
3//! exercising the direct-mapping path landed by Issue #855 part A
4//! (Commit 2). The RO blob lives in `.rodata` so subsoil auto-
5//! generates a pinned-slot `MemoryMapping` for it.
6//!
7//! When this bench is built into the JIT/javm target it ships a
8//! self-recursive image: each level `derive_spawn`s a fresh sub-VM,
9//! sums the RO data, and CALLs into the child with `depth - 1`. The
10//! parent's RO mapping is shared across every child by content
11//! address — `Cap::Data` pages get refcount-pinned at frame build,
12//! mapped read-only into each frame's PT, and the cache is hit
13//! exactly once per Image type.
14
15#![cfg_attr(target_os = "none", no_std)]
16
17use subsoil as _;