From 964ab396560309a3a496b1cabe2ad9865b9df9f2 Mon Sep 17 00:00:00 2001 From: Michael Chus Date: Wed, 1 Apr 2026 23:14:21 +0300 Subject: [PATCH] fix: run john stress in parallel per GPU, fix chromium fullscreen, filter BMC virtual disks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - bee-john-gpu-stress: spawn one john process per OpenCL device in parallel so all GPUs are stressed simultaneously instead of only device 1 - bee-openbox-session: --start-fullscreen → --start-maximized to fix blank white page on first render in fbdev environment - storage collector: skip Virtual HDisk* devices reported by BMC/iDRAC Co-Authored-By: Claude Sonnet 4.6 --- audit/internal/collector/storage.go | 13 +++++++++++++ iso/overlay/usr/local/bin/bee-john-gpu-stress | 11 ++++++++++- iso/overlay/usr/local/bin/bee-openbox-session | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/audit/internal/collector/storage.go b/audit/internal/collector/storage.go index efdb2fc..f577d9d 100644 --- a/audit/internal/collector/storage.go +++ b/audit/internal/collector/storage.go @@ -77,11 +77,24 @@ func discoverStorageDevices() []lsblkDevice { if dev.Type != "disk" { continue } + if isVirtualBMCDisk(dev) { + slog.Debug("storage: skipping BMC virtual disk", "name", dev.Name, "model", dev.Model) + continue + } disks = append(disks, dev) } return disks } +// isVirtualBMCDisk returns true for BMC/IPMI virtual USB mass storage devices +// that appear as disks but are not real hardware (e.g. iDRAC Virtual HDisk*). +// These have zero reported size, a generic fake serial, and a model name that +// starts with "Virtual HDisk". +func isVirtualBMCDisk(dev lsblkDevice) bool { + model := strings.ToLower(strings.TrimSpace(dev.Model)) + return strings.HasPrefix(model, "virtual hdisk") +} + func lsblkDevices() []lsblkDevice { out, err := exec.Command("lsblk", "-J", "-d", "-o", "NAME,TYPE,SIZE,SERIAL,MODEL,TRAN,HCTL").Output() diff --git a/iso/overlay/usr/local/bin/bee-john-gpu-stress b/iso/overlay/usr/local/bin/bee-john-gpu-stress index 9960ee2..3dc7d25 100644 --- a/iso/overlay/usr/local/bin/bee-john-gpu-stress +++ b/iso/overlay/usr/local/bin/bee-john-gpu-stress @@ -190,4 +190,13 @@ CHOSEN_FORMAT=$(choose_format) || { } echo "format=${CHOSEN_FORMAT}" -exec ./john --test="${SECONDS}" --format="${CHOSEN_FORMAT}" --devices="${JOHN_DEVICES}" +PIDS="" +for opencl_id in $(echo "${JOHN_DEVICES}" | tr ',' ' '); do + ./john --test="${SECONDS}" --format="${CHOSEN_FORMAT}" --devices="${opencl_id}" & + PIDS="${PIDS} $!" +done +FAIL=0 +for pid in ${PIDS}; do + wait "${pid}" || FAIL=$((FAIL+1)) +done +[ "${FAIL}" -eq 0 ] || { echo "john: ${FAIL} device(s) failed" >&2; exit 1; } diff --git a/iso/overlay/usr/local/bin/bee-openbox-session b/iso/overlay/usr/local/bin/bee-openbox-session index c812e84..6e9c4fe 100755 --- a/iso/overlay/usr/local/bin/bee-openbox-session +++ b/iso/overlay/usr/local/bin/bee-openbox-session @@ -24,7 +24,7 @@ chromium \ --no-first-run \ --disable-session-crashed-bubble \ --disable-features=TranslateUI \ - --start-fullscreen \ + --start-maximized \ http://localhost/ & exec openbox