thesofproject / sof

Sound Open Firmware
Other
561 stars 318 forks source link

[BUG][Needs Check] IPC worker thread can run on secondary cores #8165

Open lyakh opened 1 year ago

lyakh commented 1 year ago

Describe the bug

SOF isn't an SMP system, its use of cores is hard-wired. Most management tasks are only supposed to run on the primary core, only pre-assigned audio processing tasks should run on secondary cores. One of such management tasks is the EDF scheduler work handler. To fix it to the primary core a special work queue is created, which is set to only run on the primary core, and the delayed work, implementing the scheduler, is submitted to that queue.

Whereas the IPC delayed work is run on the default work queue, which on Zephyr can run on any core.

Expected behavior

The IPC delayed work should only run on the primary core.

Impact

Running on a secondary core without proper code synchronisation can lead to data corruption.

lgirdwood commented 1 year ago

@marcinszkudlinski are you also aligned with this proposal ?

kv2019i commented 11 months ago

Nobody assigned, less than a week to branch, moving to v2.9.

kv2019i commented 8 months ago

Stable-v2.9 branched, this didn't make the cut, bumping to 2.10.