-
Glorhop authored
Layout — bench/ is now split by experiment instead of one flat pile of 25 files: - common/ membw, cpuhog, freq_probe, make-inmate-initramfs.sh (shared by all four) - rt-latency/ experiment 1 — RROS / Xenomai / PREEMPT_RT probes, same cell, same dtb - crosscell/ experiment 2 — ivshmem-v2 link, heartbeat, D1/D2 detect-isolate-recover - rt-demo/ experiment 3 — oob GPIO loop under a fully loaded rich Linux - integrated/ experiment 4 — the same loop, now driven and monitored across cells New in integrated/: - rt_shm.h single source of truth for the telemetry/command layout; its first 24 B are byte-compatible with crosscell's struct hb, so ivshmem-health keeps detecting D2 with not a line changed - rt_ctrl.c inmate side: oob GPIO loop + per-cycle telemetry publish + command poll + fault injection; hot spin touches neither shared memory nor barriers - rt_console.c root side: dash/get/set/sweep/inject-hang/clear-hang, each waiting for cmd_ack within one telemetry snapshot rather than assuming write == sent - inmate-init-full, scenario_full.sh (T0–T8, every beat asserted, non-zero exit on any failure), tests/test_rt_shm.c Plus common/freq_probe.c and one README per experiment directory. Corrections folded in: - the stimulus is the DHO924S built-in generator G, not an external AFG; its 5.00 V / 1.000 kHz power-on default is called out because pin31 is a 3.3 V logic input - hypervisor-enable is detected by the root-cell row, not by the exit code of `jailhouse cell list` — that exits 0 even when nothing is enabled, so enable was being skipped silently and cell create then failed with a near-undiagnosable EINVAL - make-inmate-initramfs.sh: INIT_SRC= for one-pass init injection (repacking outside fakeroot loses the mknod'd dev/console), dd and taskset in the default tool set, and a TARGET= default matching the new directory depth - the plaintext sshpass invocation is gone from scenario2_faultdemo.sh Conventions: - READMEs describe operations only — what each file is, how to build, deploy, wire and run it. Measured values and result analysis go in the competition document, not here. - build outputs stay out of the working tree: every build line writes to "$ART", which defaults to ../artifacts, a sibling of the repodd7d1df1