Skip to content

Enhance fastrpc_test for multi-domain and multi-PD execution#406

Merged
smuppand merged 1 commit into
qualcomm-linux:mainfrom
anankulk:fastrpc-multi-domain-test
Jun 9, 2026
Merged

Enhance fastrpc_test for multi-domain and multi-PD execution#406
smuppand merged 1 commit into
qualcomm-linux:mainfrom
anankulk:fastrpc-multi-domain-test

Conversation

@anankulk

@anankulk anankulk commented Apr 16, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR enhances fastrpc_test by expanding test coverage from a single DSP domain to runtime discovery and validation of all supported DSP domains.
The change improves coverage on platforms with multiple DSPs while preserving compatibility with legacy single-domain execution.


Changes

Runtime DSP domain discovery

  • Discover available DSP domains at runtime using get_remoteproc_by_firmware() with dt_has_remoteproc_fw() as fallback
  • Remove reliance on a fixed default domain
  • Canonicalize firmware names (cdsp0cdsp, gdsp0gpdsp0, gdsp1gpdsp1)

Expanded domain support

  • Add support for CDSP1, GPDSP0, and GPDSP1
  • Covers domains 4, 5, and 6

Domain-aware PD execution

  • Enforce PD execution rules based on domain capabilities:
    • ADSP / MDSP / SDSP: signed PD only
    • CDSP / CDSP1 / GPDSP: signed and unsigned PDs
  • Automatically select supported PD modes per domain
  • Honour FASTRPC_UNSIGNED_PD env var with correct priority: --unsigned-pd CLI > FASTRPC_UNSIGNED_PD env > --pd-mode

Result tracking and reporting

  • Track pass/fail and subtest counts per domain and per PD mode during execution
  • Remove post-run log reparsing — all counts accumulated in RESULTS_TRACKER during run loop
  • Print a tabular summary per domain and PD mode with aligned columns showing Total/Pass/Fail/Skip per invocation

SoC-specific handling

  • Skip QRB2210 and Glymur CRD entirely — FastRPC not supported
  • Filter GPDSP0/GPDSP1 (domains 5/6) for QCS9075, QCS8275 and QCS8300
  • Treat libhap_example HAP_mem DMA failure as known skip on SM8850 — remaining subtests pass
  • Fix SOC_MACHINE extraction to preserve full string for reliable multi-word SoC name matching

Behavior

Default behavior

  • Test all discovered DSP domains with supported PD modes

Legacy behavior

  • Preserve single-domain execution via:
    --domain-mode single --domain <N>

Maintenance

  • Remove unused pick_default_domain() helper
  • Rename USER_PDUNSIGNED_PD across YAML params, CLI flags and env vars
  • Fix SKIP paths to exit with status 0
  • Resolve ShellCheck warnings (SC2002, SC2317, SC2086, SC2188, SC2034)
  • Fix trailing whitespace and missing EOF newline
  • Update YAML metadata and run.sh usage documentation

Expected Sample Output: (qcs9100-ride-sx)
image

@smuppand smuppand left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • changed defaults are not truly backward compatible
  • YAML wrapper in the changed hunk still uses the older masked pattern
  • the new no-domain skip path exits 1 after writing SKIP

Please address the workflow issues - https://github.com/qualcomm-linux/qcom-linux-testkit/actions/runs/24520486149/job/71764753535?pr=406

Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh Outdated
Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/fastrpc_test.yaml Outdated
Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh Outdated
Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh Outdated

@smuppand smuppand left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please test this in Lava and share the jobs as a reference once the changes are applied?

@bhargav0610 @qcom-anilyada The current run.sh script modifies the default behavior, and fastrpc is designed to change it intentionally. Please take note of this.

Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/fastrpc_test.yaml Outdated
@smuppand smuppand added the enhancement New feature or request label Apr 18, 2026
Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/fastrpc_test.yaml Outdated
Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/fastrpc_test.yaml Outdated
Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/fastrpc_test.yaml Outdated
@anankulk anankulk force-pushed the fastrpc-multi-domain-test branch 3 times, most recently from 7797d7e to 43a4100 Compare April 21, 2026 06:46
@smuppand

Copy link
Copy Markdown
Contributor

@smuppand

Copy link
Copy Markdown
Contributor

@anankulk Please fix the workflow errors https://github.com/qualcomm-linux/qcom-linux-testkit/actions/runs/24723885995/job/72363028941

@anankulk anankulk force-pushed the fastrpc-multi-domain-test branch from 4afc121 to 8a1e3b3 Compare May 19, 2026 11:01
@anankulk anankulk requested a review from smuppand May 19, 2026 12:14
@anankulk anankulk force-pushed the fastrpc-multi-domain-test branch from 37e4d9f to 2c7b767 Compare May 19, 2026 12:47
@smuppand

Copy link
Copy Markdown
Contributor

@anankulk Fix the workflow issues

@anankulk anankulk force-pushed the fastrpc-multi-domain-test branch from 2c7b767 to 1a4877f Compare May 20, 2026 05:05
@anankulk

Copy link
Copy Markdown
Contributor Author

Acknowledged the comment and updated the patch with the required fix.

@smuppand smuppand left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do squashing/cleaning the 5 commits

esac

pattern="${LOG_ROOT}/${dom_name}_${pd_tag}_iter*.out"
for iter_file in $pattern; do

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The final summary still reparses ${LOG_ROOT}/${domain}_${pd}_iter*.out files to compute subtest totals. The earlier request and PR description say results should be tracked during the main run loop instead of reparsing logs. Please either track subtest totals during each iteration and store them in RESULTS_TRACKER, or update the PR description if this reparsing is intentionally retained only for subtest summary.

Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh
@anankulk anankulk force-pushed the fastrpc-multi-domain-test branch from 1a4877f to 8b3b28b Compare May 21, 2026 05:24
@smuppand

Copy link
Copy Markdown
Contributor

@anankulk

Here are the jobs on different targets, please check:

 

 

Target | Job | Status -- | -- | -- glymur-crd | https://lava.infra.foundries.io/scheduler/job/224287 | Boot Crash/Timeout iq-8275-evk | https://lava.infra.foundries.io/scheduler/job/224262 | PASS kaanapali-mtp | https://lava.infra.foundries.io/scheduler/job/224266 | FAIL qcs615-adp-air | https://lava.infra.foundries.io/scheduler/job/224285 | PASS qcs6490 | https://lava.infra.foundries.io/scheduler/job/224270 | PASS qcs8300-ride-sx | https://lava.infra.foundries.io/scheduler/job/224276 | FAIL iq-9075-evk | https://lava.infra.foundries.io/scheduler/job/224280 | PASS rb1-core-kit | https://lava.infra.foundries.io/scheduler/job/224281 | SKIP

@anankulk anankulk force-pushed the fastrpc-multi-domain-test branch from 8b3b28b to ef36a2d Compare June 3, 2026 13:23
@anankulk anankulk requested review from ekanshibu and smuppand June 4, 2026 05:01
@smuppand

smuppand commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

Comment thread Runner/suites/Multimedia/CDSP/fastrpc_test/run.sh Outdated
@anankulk anankulk force-pushed the fastrpc-multi-domain-test branch from af122be to 8c593a0 Compare June 5, 2026 07:35
@smuppand

smuppand commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

@anankulk We perform validation on meta-qcom CI first, then proceed with merging to prevent any regressions on other SoCs.

@qcom-anilyada

qcom-anilyada commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

@smuppand

smuppand commented Jun 7, 2026

Copy link
Copy Markdown
Contributor

Here are the soak run on this PR on all premerge enabled targets:

Target Job  Status
iq-8275-evk https://lava.infra.foundries.io/scheduler/job/246502 PASS
qcs615-ride https://lava.infra.foundries.io/scheduler/job/246511 PASS
rb3gen2-core-kit https://lava.infra.foundries.io/scheduler/job/246504 PASS
qcs8300-ride-sx https://lava.infra.foundries.io/scheduler/job/246506 PASS
qcs9100-ride-sx https://lava.infra.foundries.io/scheduler/job/246525 FAIL
iq-9075-evk https://lava.infra.foundries.io/scheduler/job/246517 PASS
rb1-core-kit https://lava.infra.foundries.io/scheduler/job/246515 SKIP
glymur-crd https://lava.infra.foundries.io/scheduler/job/246519 SKIP
kaanapali-mtp https://lava.infra.foundries.io/scheduler/job/246520 PASS

Thanks @qcom-anilyada for the validation results. @anankulk please check for the qcs9100-ride-sx failure and RB1, Glymur SKIP reasons.

- Discover DSP domains at runtime via get_remoteproc_by_firmware()
  with dt_has_remoteproc_fw() as fallback
- Support CDSP1, GPDSP0, GPDSP1; canonicalize firmware names
- Domain-aware PD execution; rename USER_PD -> UNSIGNED_PD
- Per-domain/per-PD tabular summary with aligned subtest counts
- SoC blacklist: skip QRB2210/Glymur CRD; filter GPDSP on QCS9075/
  QCS8275/QCS8300; skip libhap_example HAP_mem failure on SM8850
- Fix SOC_MACHINE parsing for multi-word SoC names
- Fix all exit paths to exit 0 for LAVA .res consumption

Signed-off-by: Anand Kulkarni <anankulk@qti.qualcomm.com>
@anankulk anankulk force-pushed the fastrpc-multi-domain-test branch from 8c593a0 to fb2162f Compare June 8, 2026 05:57
@anankulk

anankulk commented Jun 8, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the results @smuppand , @qcom-anilyada.

1)With the new patch, the failing tests on qcs9100-ride-sx (GPDSP) have been temporarily disabled, as fastrpc_tests are currently not supported on GPDSP.
2)On RB1, the fastrpc DT changes were reverted (PR : qualcomm-linux/kernel@b2ea57b) so, the related tests have been skipped.
3) For Glymur, a boot-up issue is currently being investigated by the baseport team; hence, the tests have been skipped.

We will update the test coverage and re-enable the disabled tests once these issues are resolved.

@qcom-anilyada

Copy link
Copy Markdown
Contributor

@smuppand smuppand left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@smuppand smuppand merged commit 4df738e into qualcomm-linux:main Jun 9, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants