Repository navigation
ipc4: multi pipeline set state on different cores - #7962
abonislawski wants to merge 2 commits into
Conversation
There was a problem hiding this comment.
ignoring error? And this is not an IPC4 error code
There was a problem hiding this comment.
line 473-474, althrough have a long distance to reach.
There was a problem hiding this comment.
still idc_send_msg() returns POSIX error codes, so they cannot be passed up to the caller here.
There was a problem hiding this comment.
I think it is not about using or not using IDCs, it's about whether all pipelines are on the same core or on different. Maybe call the variable like multi_core or cross_core or similar
There was a problem hiding this comment.
... it's also about IDC usage as that's what in the end happens. Cause-versus-effect , I'm happy with both namings.
There was a problem hiding this comment.
@kv2019i sorry, I meant, that IDCs are used in both cases, just that in one case the use is explicit and in the other case it's hidden under Zephyr API calls. So, using IDCs isn't a differentiating factor between the cases
There was a problem hiding this comment.
... it's also about IDC usage as that's what in the end happens. Cause-versus-effect , I'm happy with both namings.
4bdb992 to
6bd8156
Compare
This will allow to correctly set multiple pipelines state even if they are allocated on different cores. ipc4_set_pipeline_state will check if several cores are involved - set ppl state if only current core requested - process IPC on another core if only single secondary core requested - send IDC messages if several secondary cores involved Signed-off-by: Adrian Bonislawski <adrian.bonislawski@intel.com>
6bd8156 to
6572a71
Compare
| */ | ||
| static int idc_ppl_state(uint32_t ppl_id) | ||
| { | ||
| #if CONFIG_IPC_MAJOR_4 |
There was a problem hiding this comment.
zephyr + tgl IPC3 failed so I added this check
| idx = ppl_icd->core; | ||
| } | ||
| } | ||
|
|
There was a problem hiding this comment.
can we simplify the loop below to do this right after the first one?
/* execute IPC on the secondary core if all pipelines are on the same core */
if (!use_idc && !cpu_is_me(idx))
return ipc4_process_on_core(idx, false);
@kv2019i the thing is, that in the other case it's also using IDC - when all of the pipelines in a set are processed on a different core and |
|
@abonislawski conflicts |
Signed-off-by: serhiy-katsyuba-intel <101654961+serhiy-katsyuba-intel@users.noreply.github.com>
|
Adrian is on vacation this week. The conflict was with my commit merged half an hour ago. I resolved the conflict here on GitHub, however, this resulted in addition merge commit, which, probably, will not look nice in history. So let's wait for Adrian to rebase its commit and update the PR. |
lgirdwood
left a comment
There was a problem hiding this comment.
@abonislawski can you rebase. Thanks !
|
closing as merged in #7995 |
This will allow to correctly set multiple pipelines state even if they are allocated on different cores.
ipc4_set_pipeline_state will check if several cores are involved
Cherry-pick from mtl-005 branch