Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] cavs-nocodec tplg puts too much content on one DSP core #4911

Closed
kv2019i opened this issue Oct 22, 2021 · 3 comments
Closed

[BUG] cavs-nocodec tplg puts too much content on one DSP core #4911

kv2019i opened this issue Oct 22, 2021 · 3 comments
Labels
bug Something isn't working as expected TGL-H TGL-H platform

Comments

@kv2019i
Copy link
Collaborator

kv2019i commented Oct 22, 2021

Describe the bug
Using all pipes the nocodec topology exposes leads to DSP overload.

To Reproduce
Tested on TGL-H system:

sof-test:
./multiple-pipeline.sh -f p -c 20

Reproduction Rate
How often does the issue happen ? i.e. 1/10 (once in ten attempts), 1/1000 or all the time.
Does the reproduction rate vary with any other configuration or user action, if so please describe and show the new reproduction rate.

Expected behavior
The topologies should leave some safety marging for DSP utilization so that even if all expose pipes are run, DSP is not above 90+% utilization. With current nocodec topology, this is happening. Sof-logger should not have large number of "ll drift detected" warnings during a normal successful run.

Impact
Audio overrun/underruns can be seen when all audio pipes are used. Especially the dmic pipes are not designed to be used simultaneously, but there are not hard blocks to prevent this from happening.

Environment

  1. Branch name and commit hash of the 2 repositories: sof (firmware/topology) and linux (kernel driver).
    • Kernel: 5.15.0-rc4-daily-nocodec-20211022
    • SOF: b82e0ef (origin/main) pipeline: always check pipeline_for_each_comp() return value
  2. Name of the topology file
    • Topology: sof-cavs-nocodec.tplg
  3. Name of the platform(s) on which the bug is observed.
    • Platform: TGL-H cavs2.5

Screenshots or console output

$ sof-logger |grep drift
[    10594771.506085] (          87.343750) c0 sa                          src/lib/agent.c:79   WARN validate(), ll drift detected, delta = 45015
[    10596930.516416] (          95.781250) c0 sa                          src/lib/agent.c:79   WARN validate(), ll drift detected, delta = 41394
[    10599032.807999] (        2102.291504) c0 sa                          src/lib/agent.c:79   WARN validate(), ll drift detected, delta = 40391

$ sof-logger |grep drift |wc -l
4247
@kv2019i kv2019i added bug Something isn't working as expected TGL-H TGL-H platform labels Oct 22, 2021
@kv2019i kv2019i changed the title [BUG] nocodec tplg puts too much content on one DSP [BUG] cavs-nocodec tplg puts too much content on one DSP Oct 22, 2021
@kv2019i kv2019i changed the title [BUG] cavs-nocodec tplg puts too much content on one DSP [BUG] cavs-nocodec tplg puts too much content on one DSP core Oct 22, 2021
@plbossart
Copy link
Member

The bug title is misleading IMHO: this is not a topology bug but rather a failure on the firmware side to clearly say the DSP resources are exceeded.

I also don't really see how that's possible, we have multiple streams but the topology is still rather simple with a 2 stream mixer and filters on two mic inputs. How can we exceed 400 MCPS here?

@kv2019i
Copy link
Collaborator Author

kv2019i commented Oct 25, 2021

Ack @plbossart , closing the bug as works-as-specified.

@kv2019i kv2019i closed this as completed Oct 25, 2021
@marc-hb
Copy link
Collaborator

marc-hb commented Nov 3, 2021

ll_schedule: add a DSP load tracker to ll_tasks_execute #4943

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working as expected TGL-H TGL-H platform
Projects
None yet
Development

No branches or pull requests

3 participants