Files
etwenandClaude Opus 5 15ea776b82 feat(soak): Show the background jobs each round, and stop the loop spinning
Script B's monitoring loop had no pause at all - each round started the
instant the last one ended, so an overnight soak filled the log with
near-identical samples taken seconds apart. The section was even labelled
"Get data every 10mins" while running with no delay whatsoever.

The loop now ends each round with pause 60 and prints both job lists:
bgctl list for the platform job runner, jobs for anything the macro
backgrounded in that shell. A stress job that dies mid-soak shows up as a
shorter list on the next round instead of going unnoticed until the end.

60s is still hard-coded and the Status sheet asks for 10 minutes, so the
Phase 3 item stays open - this makes the loop sane, it does not close it.

Also adds docs/LTC2980_channel_map.csv: the nine settings/*.conf flattened
into one Board,CONN,Ch,NetName,Vnom sheet, generated by
tools/gen_channel_map.sh. The CSV is output, not source. NC channels are
kept as NC/- because the channel number is also the PMBus page - dropping
the gaps would shift every channel after them.

Two things the merged table makes visible: SWB0 and SWB1 carry identical
net names and voltages (only the bus and CB_I2C_CH differ), so those are
two copies that can drift apart silently; and there are exactly 8 NC
channels, all on CONN14/CONN15.

tools/100G_PRBS.txt, TR518.txt and fan_ctrl.txt join the existing
traffic_loopback_*.txt references. TR518 is not scripted yet and cannot
share the hardware with blanton_traffic_linespeed - both drive port
loopback and L2 learning.

Script A -> V1.0.10.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014RetWKFZFG1ZHcitQAyhwM
2026-08-27 14:29:47 +08:00

4.5 KiB

v1.0.10 — The soak loop stops spinning flat out, and shows you what is still running

New features

Every soak round now reports the background jobs

  • Script B's monitoring loop prints bgctl list (platform jobs) and jobs (the login shell's own background jobs) on every pass, right after the platform data. A stress job that dies three hours into an overnight soak now shows up as a shorter list on the next round, instead of only being noticed at the end — or not at all.
  • The two lists answer different questions and are both worth having: bgctl knows about the platform's job runner, jobs knows about anything the macro backgrounded in that shell.

A single table for all 144 margin channels

  • docs/LTC2980_channel_map.csv flattens the nine settings/*.conf files into one sheet — Board,CONN,Ch,NetName,Vnom — so "which board and channel is PVDD1V5_TSC on?" is one search instead of opening nine files.
  • tools/gen_channel_map.sh regenerates it. The CSV is output, not source: edit the .conf files and re-run the script, never the other way round.
  • Unused channels stay in the table as NC / - rather than being dropped, because the channel number is also the PMBus page (ch / 8 picks the chip, ch % 8 picks the page) — filtering the gaps out would shift everything after them.

The bench command lists that these scripts came from

  • tools/100G_PRBS.txt, tools/TR518.txt and tools/fan_ctrl.txt join the existing traffic_loopback_*.txt set: the raw bcmcmd / sysfs sequences, kept in the form you can paste into a console when a script is misbehaving and you want to drive the hardware directly.

🐛 Bug fixes

The soak loop ran as fast as the DUT could answer

  • while 1 had no pause at all, so each round started the moment the previous one finished. Over a long soak that means constant console traffic and a log full of near-identical samples taken seconds apart. The loop now ends each round with pause 60.
  • Note the gap this leaves: the Status sheet asks for a 10-minute sampling interval, and 60 seconds is still hard-coded rather than configurable. This makes the loop sane, it does not finish the job.

A comment promised a cadence the code never had

  • The loop was labelled Get data every 10mins while running with no delay whatsoever. It now says what it does.

📦 Downloads

File Contents
Script_ABC_Blanton_V1.0.10.zip The full Tera Term working directory, including Blanton_Script/ to copy onto the DUT

After copying to the DUT:

chmod +x ~/Blanton_Script/*.sh      # see below
grep -rlU $'\r' ~/Blanton_Script    # expect no output

mgmt_ping_monitor.sh and port_prbs_monitor.sh launch their workers through bash, so those two run without the execute bit. bmc_monitor.sh and usb_target.sh still need it, and neither git (mode 100644) nor a Windows/USB copy carries it. Without the chmod, start fails with Permission denied and the later cat finds nothing: the section ends up empty and nothing reports an error.

⚠️ Before you run

  • Declare the switch population. SWB_UNIT0 / SWB_UNIT1 in config.ttl say which switch units this DUT has; traffic and the readiness gate both follow them.
  • Set FAN_SPEED. It is applied at the start of every run.
  • Management connectivity is in use, not preserved. Both management NICs are up and pinging — drive the run from the serial console.
  • PRBS is still not wired into the macros. Run port_prbs_monitor.sh by hand if you want it; the calls in A/B/C remain commented out, unchanged from v1.0.9.
  • TR518 and the loopback traffic test cannot both run. tools/TR518.txt sets port all lb=mac and l2 learn off across the whole unit, which is the same hardware blanton_traffic_linespeed is using. Pick one.
  • Two settings persist to config_db.json and survive a reboot: LLDP is left disabled and the 100G uplinks are left configured. Restore them before the DUT moves on.

Full changelog: V1.0.9...V1.0.10