perf(geekbench): Add Geekbench runner and its lava yaml files#260
perf(geekbench): Add Geekbench runner and its lava yaml files#260vnarapar merged 7 commits intoqualcomm-linux:mainfrom
Conversation
…outputs - Add POSIX-safe progress runner (fifo + heartbeat) without PIPESTATUS - Add summary/workload parsers and CSV init/append helpers - Add Geekbench bin resolver + unlock helper - Keep helpers self-contained for reuse by Geekbench runner Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
…ummaries - Add robust init_env discovery and dependency checks - Support wrapper options (runs/outdir/res/bin/core-list/unlock/heartbeat) - Forward unknown args to Geekbench and support raw forwarding via -- - Generate summary/workloads CSV and final readable summary output - Always exit 0 and write PASS/FAIL/SKIP to .res Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
| # Naming convention (matches long-metric key style): | ||
| # goal.geekbench.<section>.workload.<WorkloadName>.<kind> | ||
| # where: | ||
| # section = single | multi |
There was a problem hiding this comment.
Here section is 1, 1-2, 1-3 ?
There was a problem hiding this comment.
In geekbench_baseline.conf, “section” refers to result group (single/multi) in metric keys, not Geekbench CLI --section (numeric selectors like 1 / 1-3 belong to YAML SECTION and are forwarded as-is by the wrapper if supported).
|
|
||
| RUNS="${GEEKBENCH_RUNS:-1}" | ||
| OUTDIR="${GEEKBENCH_OUTDIR:-$OUTDIR_DEFAULT}" | ||
| RES_FILE="${GEEKBENCH_RES_FILE:-$RES_FILE_DEFAULT}" |
There was a problem hiding this comment.
result file should always be in the script directory for lava/internal tool to fetch results
There was a problem hiding this comment.
result file should always be in the script directory for lava/internal tool to fetch results
By default, it will be located in the script directory. If the user chooses to override this, their selection will be used instead.
| # --------------------------------------------------------------------------- | ||
| # Clock sanity (avoid epoch time breaking logs / gating) | ||
| # --------------------------------------------------------------------------- | ||
| if command -v ensure_reasonable_clock >/dev/null 2>&1; then |
There was a problem hiding this comment.
since this function is statically available in functestlib.sh, no need to check the availability
There was a problem hiding this comment.
since this function is statically available in functestlib.sh, no need to check the availability
There are certain scenarios in the shell where, if a user unsets or exits, we may encounter issues. Therefore, it's always best to check beforehand before running any commands.
| if command -v ensure_reasonable_clock >/dev/null 2>&1; then | ||
| log_info "Ensuring system clock is reasonable before Geekbench..." | ||
| if ! ensure_reasonable_clock; then | ||
| log_error "Clock is not reasonable, Running Geekbench benchmark may lead to invalid results." |
There was a problem hiding this comment.
Since running Geekbench will lead to invalid results, can you exit script with fail?
There was a problem hiding this comment.
Since running Geekbench will lead to invalid results, can you exit script with fail?
Geekbench does not rely on the rtcsync clock. It was included in the log for debugging purposes to align with other benchmarks.
…artifacts - Run Geekbench runner from qcom-linux-testkit - Publish logs, CSV outputs, and final summary as test artifacts - Keep template generic for RB3/RB4/RB8 targets Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
- Provide reproducible defaults for iterations and output directory - Allow optional CPU pinning and wrapper env overrides - Document knobs used by LAVA and local runs Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
- Explain wrapper options vs forwarded Geekbench args - Add examples for single/multi-core, runs, and taskset pinning - Document generated logs/CSVs and .res semantics for LAVA Signed-off-by: Srikanth Muppandam <smuppand@qti.qualcomm.com>
This PR improves the Geekbench performance test in qcom-linux-testkit by making the runner more CI/LAVA-friendly and adding structured outputs.
What changed