test: enforce trace overhead p95 budget

This commit is contained in:
Kinneyzhang 2026-09-01 17:18:15 +08:00
parent 9905d48a36
commit 0e14b339c0
2 changed files with 34 additions and 6 deletions

View File

@ -353,6 +353,23 @@ RESET-REF defaults to the first Research Shelf row."
failures))
(nreverse failures))))
(defun etaf-performance-evaluator--trace-overhead-failures (overhead)
"Return hard trace budget failures from OVERHEAD statistics."
(let* ((signed (plist-get overhead :signed))
(p50 (plist-get signed :p50))
(p95 (plist-get signed :p95))
failures)
(when (> (abs p50) etaf-performance-evaluator-overhead-budget-ms)
(push (format "trace signed |p50| %.3fms > %.3fms"
(abs p50)
etaf-performance-evaluator-overhead-budget-ms)
failures))
(when (> p95 etaf-performance-evaluator-overhead-budget-ms)
(push (format "trace signed p95 %.3fms > %.3fms"
p95 etaf-performance-evaluator-overhead-budget-ms)
failures))
(nreverse failures)))
(defun etaf-performance-evaluator--trace-scenario
(runtime label function &optional verify)
"Run FUNCTION and return the one new operation for LABEL.
@ -900,12 +917,10 @@ ETAF generation and preserve RUNTIME's mounted surface in BUFFER."
(setq overhead
(etaf-performance-evaluator--measure-overhead runtime buffer)
failures (etaf-performance-evaluator--latency-failures results))
(when (> (abs (plist-get (plist-get overhead :signed) :p50))
etaf-performance-evaluator-overhead-budget-ms)
(push (format "trace signed |p50| %.3fms > %.3fms"
(abs (plist-get (plist-get overhead :signed) :p50))
etaf-performance-evaluator-overhead-budget-ms)
failures))
(setq failures
(nconc failures
(etaf-performance-evaluator--trace-overhead-failures
overhead)))
(if failures
(let ((failure-count (length failures)))
(princ "etaf-cross-package-perf FAIL\n")

View File

@ -12,6 +12,8 @@
"../scripts/benchmark-research-shelf")
(declare-function etaf-performance-evaluator--latency-failures
"../scripts/benchmark-research-shelf")
(declare-function etaf-performance-evaluator--trace-overhead-failures
"../scripts/benchmark-research-shelf")
(declare-function etaf-performance-evaluator--verify-runtime-accelerator
"../scripts/benchmark-research-shelf")
(declare-function etaf-performance-evaluator--verify-environment
@ -89,6 +91,17 @@
(dolist (failure failures)
(should (string-match-p "> 50.000ms" failure)))))
(ert-deftest etaf-performance-evaluator-gates-trace-overhead-p95 ()
"Apply the 2ms trace budget to signed p95 as well as median bias."
(let ((failures
(etaf-performance-evaluator--trace-overhead-failures
'(:signed (:p50 0.4 :p95 2.5)))))
(should (= 1 (length failures)))
(should (string-match-p "p95 2.500ms > 2.000ms" (car failures))))
(should-not
(etaf-performance-evaluator--trace-overhead-failures
'(:signed (:p50 0.4 :p95 1.9)))))
(ert-deftest etaf-performance-evaluator-trace-scenario-retains-one-operation ()
"The trace driver uses the public Runtime recorder and preserves results."
(let ((buffer-name (generate-new-buffer-name " *etaf-driver-trace-test*"))