From d78a2530da91b76625b71c2aeaf3293abc6c3a4b Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Wed, 6 May 2026 09:42:43 +0300 Subject: move demo/ to docs/tutorial/, commit assets, consolidate TUI docs - demo/ renamed to docs/tutorial/ (tapes, scripts, TUTORIAL.md) - docs/tutorial/assets/ added to git (51 MB of GIFs + PNGs); removed /demo/assets/ from .gitignore so images render on Codeberg - docs/tui-reference.md removed; its hotkey tables merged into a new "Hotkey Quick Reference" section at the end of TUTORIAL.md - TUTORIAL.md: updated install section (mage buildDocker, no GOTOOLCHAIN=auto), fixed README relative path (../../README.md), updated internal tapes/scripts/assets path prose - README.md: updated all demo/ image paths and links to docs/tutorial/; TUI and recording-modes links now point to TUTORIAL.md anchors - AGENTS.md: updated demo/ references to docs/tutorial/ - Magefile.go: updated demoDir/demoTapesDir/demoScriptsDir/demoRunTape/ demoSudoKeepers constants to docs/tutorial/ paths Co-Authored-By: Claude Sonnet 4.6 --- demo/scripts/workload.sh | 77 ------------------------------------------------ 1 file changed, 77 deletions(-) delete mode 100755 demo/scripts/workload.sh (limited to 'demo/scripts/workload.sh') diff --git a/demo/scripts/workload.sh b/demo/scripts/workload.sh deleted file mode 100755 index ebbf58b..0000000 --- a/demo/scripts/workload.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/usr/bin/env bash -# Background workload for demo tapes. Generates a steady mix of file I/O -# (open/read/close), big writes (fsync/dd), stat-heavy traffic, and ioworkload -# scenarios so every TUI tab has something interesting to display. -# -# Designed to be killed via `kill $!` from the tape wrapper. All children are -# placed in this script's process group so a single signal cleans them up. - -set -u - -ROOT="$(cd "$(dirname "$0")/.." && pwd)" -IOWORKLOAD="${ROOT}/../ioworkload" -SCRATCH="$(mktemp -d -t ior-demo-workload-XXXXXX)" -trap 'rm -rf "$SCRATCH"' EXIT - -cleanup() { - trap - TERM INT - # Kill the entire process group so all background loops stop. - kill -- -$$ 2>/dev/null || true - exit 0 -} -trap cleanup TERM INT - -# A) walk /usr and read first byte of each file: tons of openat/read/close + varied paths. -( - while true; do - find /usr/share /usr/lib -maxdepth 4 -type f 2>/dev/null \ - | shuf -n 800 \ - | xargs -r -I{} sh -c 'head -c 1 "{}" >/dev/null 2>&1' || true - sleep 1 - done -) & - -# B) periodic large write with fsync via dd: fills the latency tab with slow writes. -( - while true; do - dd if=/dev/zero of="${SCRATCH}/big.bin" bs=1M count=20 conv=fsync status=none 2>/dev/null || true - sleep 3 - rm -f "${SCRATCH}/big.bin" - done -) & - -# C) stat-heavy directory crawl: feeds the syscall tab with newfstatat/getdents. -( - while true; do - find /etc /var/log -maxdepth 3 >/dev/null 2>&1 || true - sleep 2 - done -) & - -# D) ioworkload scenario rotation if the binary exists: gives us syscall variety -# beyond what the shell utilities trigger (mmap, dup, fcntl, sync, rename, link). -if [ -x "$IOWORKLOAD" ]; then - ( - scenarios=( - open-basic - readwrite-basic - stat-basic - stat-statx - mmap-basic - sync-basic - dup-basic - fcntl-dupfd - rename-basic - link-basic - dir-basic - ) - while true; do - for s in "${scenarios[@]}"; do - "$IOWORKLOAD" --scenario="$s" >/dev/null 2>&1 || true - done - done - ) & -fi - -# Idle until killed. -wait -- cgit v1.2.3