diff options
| author | Michele Bertasi <405934+mbrt@users.noreply.github.com> | 2026-03-26 22:19:14 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-26 14:19:14 -0700 |
| commit | 298ed2a6c44cde90b4262b884169c53b8deda508 (patch) | |
| tree | 1838fd3e8ca9913292562ee854d633288e6dfced /bin/snapshot-cgroup | |
| parent | ea916da7fa9844cc3da608e75510f478c7b09f7d (diff) | |
Add support for cgroup limits (#443)
* Add cgroup package
* Refactor procGgroup
* Add testdata generation
* Add v1 testdata generation
* Move scripts around
* Add integration test in CI
* Remove cgroup v1
* Move to cgroup struct
* Remove half-core test as it's redundant
Diffstat (limited to 'bin/snapshot-cgroup')
| -rwxr-xr-x | bin/snapshot-cgroup | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/bin/snapshot-cgroup b/bin/snapshot-cgroup new file mode 100755 index 0000000..5fed85f --- /dev/null +++ b/bin/snapshot-cgroup @@ -0,0 +1,42 @@ +#!/usr/bin/env bash +# +# snapshot-cgroup - Copy cgroup v2 files from the live system into a +# directory tree suitable for use with TestIntegrationCgroupLimits. +# +# Usage: snapshot-cgroup <output-dir> +# +# The script reads /proc/self/cgroup to find the v2 group path and copies +# exactly the files that the cgroup package needs: +# +# proc/self/cgroup +# sys/fs/cgroup/<group>/cpu.max +# sys/fs/cgroup/<group>/memory.max + +set -euo pipefail + +if [[ $# -ne 1 ]]; then + echo "Usage: $0 <output-dir>" >&2 + exit 1 +fi + +out="$1" +mkdir -p "$out" + +copy_file() { + local src="$1" dst="$out/$2" + mkdir -p "$(dirname "$dst")" + cp "$src" "$dst" +} + +copy_file /proc/self/cgroup proc/self/cgroup + +group=$(awk -F: '/^0::/ { print $3 }' /proc/self/cgroup) +cgdir="/sys/fs/cgroup${group}" + +for f in cpu.max memory.max; do + if [[ -f "$cgdir/$f" ]]; then + copy_file "$cgdir/$f" "sys/fs/cgroup${group}/$f" + fi +done + +echo "Snapshot written to $out" |