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
4.5 KiB
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) andjobs(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:
bgctlknows about the platform's job runner,jobsknows about anything the macro backgrounded in that shell.
A single table for all 144 margin channels
docs/LTC2980_channel_map.csvflattens the ninesettings/*.conffiles into one sheet —Board,CONN,Ch,NetName,Vnom— so "which board and channel isPVDD1V5_TSCon?" is one search instead of opening nine files.tools/gen_channel_map.shregenerates it. The CSV is output, not source: edit the.conffiles 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 / 8picks the chip,ch % 8picks 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.txtandtools/fan_ctrl.txtjoin the existingtraffic_loopback_*.txtset: the rawbcmcmd/ 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 1had 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 withpause 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 10minswhile 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_UNIT1inconfig.ttlsay 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.shby 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.txtsetsport all lb=macandl2 learn offacross the whole unit, which is the same hardwareblanton_traffic_linespeedis using. Pick one. - Two settings persist to
config_db.jsonand survive a reboot: LLDP is left disabled and the 100G uplinks are left configured. Restore them before the DUT moves on.
🔗 Links
- ARCHITECTURE.md — test flow, data models, constraints
- CLAUDE.md — commands and the bench gotchas
- LTC2980_channel_map.csv — all 144 margin channels
Full changelog: V1.0.9...V1.0.10