P84 changed the question from “can the shell work?” to “where does a normal shell session spend cycles?”
The guest now runs a deterministic BusyBox ash workload: echo,
uname, ls, cat, /tmp file create/read/remove, and a short shell
loop. The Verilator harness runs in +profile mode and timestamps a
marker after each completed command phase.
Artifacts from the run:
benchmark.json: core states, CPI, TLB, walker, memory bus, and milestone cycles.pc_samples.txt: one sampled PC every 1024 post-load cycles.shell_profile.json: command-sized phase deltas for the site.hot_functions.json: flat kernel-symbol profile fromvmlinux.
Honest caveat: this is flamegraph-style, not a true stack flamegraph. We only sample the current PC. Kernel addresses resolve well; BusyBox userspace still appears as physical/raw address buckets. That is useful because it tells us the next profiler improvement plainly.
Status: PASS for the shell workload benchmark and site data staging.
LibreLane hardening is NOT RUN.
First numbers:
| phase | cycles |
|---|---|
kernel banner to /init | 120,446,463 |
| shell setup to first command | 37,525,853 |
uname -a | 2,328,911 |
ls /bin /usr/share/p84 | 36,947,459 |
cat sample file | 5,484,333 |
/tmp file create/read/remove | 9,997,660 |
| 8x ash loop with file I/O | 23,440,310 |