-
Notifications
You must be signed in to change notification settings - Fork 349
[DRAFT] cavs-nocodec: drop the extra mixers #4948
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
Conversation
Add a lightweight load calculatio to ll_tasks_execute() and prints out the average every 2^10 runs (roughly once per second on most systems). Example log output: --cut-- [ 6950848.421715] ( 809129.187500) c0 ll-schedule ./schedule/ll_schedule.c:139 INFO ll avg 19720/38400 [ 8868838.449667] ( 679100.000000) c0 ll-schedule ./schedule/ll_schedule.c:139 INFO ll avg 19658/38400 [ 10802857.643650] ( 565147.187500) c0 ll-schedule ./schedule/ll_schedule.c:139 INFO ll avg 19822/38400 --cut-- Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Fix the documentation to match actual topology definition. The comments did not include addition of mixers nor the capture PCMs. Also many comments reflect a fixed core id that is no longer accurate. Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Remove mixers from PCM1 and PCM2 as with only one source there is no need to mix anything. This reduces the DSP load that is very high when all pipelines of the topology are used at the same time. Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
|
Results can be seen now in CI results. SOF main with mixer: Same with this patch (two mixers): So that's a 14% reduction in worstDSP load (115% -> 98%). The target would be to keep the per-core DSP load under 80%. #4940 and #4944 will both help, but to reach 80%, we should probably consider dropping the unnecessary mixers. @ranj063 is there some reason you added mixers to all? |
@kv2019i the reason we added the mixer to all is because of 2 reasons:
|
Ack, and indeed I broke the APL nocodec config with this version of the PR.
Hmm, why? Wouldn't be importat to test both kind of topologies? Still, even if we agree on that target, it's still not ok to overload the DSP, so we have to find another way to meet the above goal, but do it in a way that keeps the per-core DSP load at sensible level (<80% is good magic number). I'll wait until @singalsu 's optimization work for mixer and iir-eq are merged and do a re-measurement. If we are still above 80%, we should either drop one (or two mixers), or come up with another way to realize a two part pipeline. |
Simple: b) If we have pre-canned pipelines that go from host to dai in one shot, it's virtually impossible to break-up. So it's not about adding mixers and new sources for the sake of adding them, it's to enable their addition if we need/want to. It's really a flexibility/capability update. |
@plbossart wrote:
Ack, so this is really to make the tplg a better starting point for future extensions.
Ack. Let's see if the mixer optimizations help enough. Having the flexibility is of course better, so if they fit the budget (or can be fitted with reasonable extra work), all the better. |
Note that it's only a starting point, we will also have a need for 'intermediate' pipelines that deal with mode effects, see e.g. how Windows represent their processing tree. The layers don't matter for firmware, the point is that we can have two stages of mixers. |
|
@kv2019i the first two patches can go in, no opens for them IIUC.. |
|
Seems mixers are needed, so close this. |

Draft PR to see how much dropping the two unnecessary mixer components would bring.
Includes: