-
Notifications
You must be signed in to change notification settings - Fork 349
topology: set Speakers PPL running on C1 by default #6928
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
lgirdwood
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@johnylin76 I'm assuming this will also be the configuration for MTL ?
@mwasko fyi.
aren't we moving to per-module core assignment instead of per-pipeline? |
We are considering a constraint in the core allocation process due to L1 cache vs. uncache memory access performance. But also to avoid issues with global ordering and synchronization of the low latency modules. The current plan is to allocate all LL modules belonging to all pipelines connected as a stream (host - dai in any direction) on a single DSP core to guarantee proper order and L1 cache memory access without need to sync. |
Right, but I was referring to DP processing. In the MTL time frame, one would hope that speaker protection doesn't have to run as a LL module - none of the existing 3rd party modules qualify as LL really. |
|
Hi @lgirdwood @plbossart |
@johnylin76 I think we should be OK for a main branch waiver this time. |
|
@johnylin76 I would like to see SW experts approvals prior merging the topology change - @plbossart, @ranj063 ? |
SW doesn't really care @mwasko. The information coming from topology is used as is, there's no intelligence beyond tracking which core is used. |
plbossart
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not completely comfortable with the proposal @johnylin76
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is the addition of a separate variable from SPK_PLAYBACK_CORE intentional?
This could lead to a case where SMART_AMP_CORE=1 and SPK_PLAYBACK_CORE=0 - not sure if this is desired or that it even works since the two pipelines are connected.
Should this be
define(`SMART_AMP_CORE', SPK_PLAYBACK_CORE)
??
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure. Thanks for the suggestion.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
spurious change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think so. DTS module doesn't have the particular demand, CA_SCHEDULE_CORE should be assigned as SCHEDULE_CORE in the latter code.
Defines the target core ID for Speakers and Echo Reference pipelines explicitly. When GOOGLE_RTC_PROCESSING is defined, it will be set to the same ID as DMIC48K pipeline. Signed-off-by: Pin-chih Lin <johnylin@google.com>
For Intel platforms, C0 is on by default for processes necessary to run in low power cases, while C1..3 for processes with higher loads. This commit moves the default core to C1 for Speakers pipeline. At the same time, we found this commit can resolve the DSP panic issue on builds with 3P post-processing solutions running on Speakers pipeline. Signed-off-by: Pin-chih Lin <johnylin@google.com>
I think what @lgirdwood suggested here is landing on rpl-001-drop-stable directly? Since this PR is for main I will create a new one on rpl-001-drop-stable. I just revised the modification a bit and separated to 2 commits. The 1st commit 5d77fa1 only added SPK_PLAYBACK_CORE definition, which is also configurable by makefile argument for flexibility considering. The default Speakers core ID was moved to C1 by the 2nd commit 5d16691. By doing so we can land the 1st commit on main (and rpl-001-drop-stable) harmlessly, then see whether to land the 2nd one specifically on rpl-001-drop-stable(?) |
|
@plbossart updates good for you now ? |
|
2 comments:
|
Thanks for the note.
It's confirmed that the connected pipelines run on the same core both before and after this change. For cases having other pipelines connected to Spkr (e.g. |
|
@lgirdwood @lyakh is it all good to merge now? |
No objections against these changes in principle, but just a note, that IPC3 / topology1 aren't actually supported on "main" any more |
On Intel platforms, other platforms still support IPC3 and topology1. |
For Intel platforms, C0 is on by default for processes necessary to run in low power cases, while C1..3 for processes with higher loads. This commit moves the default core to C1 for Speakers pipeline.
At the same time, we found this commit can resolve the DSP panic issue on builds with 3P post-processing solutions running on Speakers pipeline.