mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 08:41:13 -07:00
kernel.pic-soc-load: the settle's proof is the move off the idle regime
The kernel's spin is its own load level, a count or two under a Python spin, so the third check no longer compares the settled level with the Python-spin control; it requires the settled idle reader to have moved at least half the control's split off the idle regime. Bench: PASS on image 20260903011655 (control split +6, settled split +1).
This commit is contained in:
@@ -896,9 +896,14 @@ def pic_soc_load(ctx):
|
||||
"settled reads still split by %+d counts between an idle and a busy reader", ev["settled_split"])
|
||||
ctx.check(settled["idle"]["iqr"] <= 4 and settled["busy"]["iqr"] <= 4,
|
||||
"settled reads spread %d / %d counts (interquartile)", settled["idle"]["iqr"], settled["busy"]["iqr"])
|
||||
ctx.check(abs(settled["idle"]["med"] - control["busy"]["med"]) <= 3,
|
||||
"a settled idle reader reads %d, the busy regime reads %d: the settle did not land the "
|
||||
"conversion under load", settled["idle"]["med"], control["busy"]["med"])
|
||||
# The kernel's spin is its own load level, a count or two under a Python
|
||||
# spin; what the settle must do is move an idle reader off the idle regime
|
||||
# and toward the busy one, by at least half the control's split.
|
||||
moved = settled["idle"]["med"] - control["idle"]["med"]
|
||||
ev["settled_idle_moved"] = moved
|
||||
ctx.check(ev["control_split"] <= 2 or moved >= (ev["control_split"] + 1) // 2,
|
||||
"a settled idle reader moved %+d counts off the idle regime, the control split is %+d: "
|
||||
"the settle did not land the conversion under load", moved, ev["control_split"])
|
||||
ctx.check(ev["pic_settle_us_after"] == "500", "pic_settle_us left at %s", ev["pic_settle_us_after"])
|
||||
ctx.log("PASS: settled, an idle reader and a busy reader read the same (split %+d); control split %+d",
|
||||
ev["settled_split"], ev["control_split"])
|
||||
|
||||
Reference in New Issue
Block a user