Go to file
Guennadi Liakhovetski 82857a78ba ipc: fix a IPC completion race
A race currently exists in IPC completion code. When processing the
pipeline TRIG_START command on timer-domain pipelines, processing is
postponed to the pipeline task. Usually the IPC task continues and
completes before the pipeline task. The IPC task notes, that the
command is processed in the pipeline context and doesn't send a
reply to the host. Then the pipeline task executes the command and
notifies the host.

However, occasionally the timer interrupt occurs while the IPC task
is still active. It will start processing the IPC command in the
pipeline context and reply to the host. The host then can send the
next IPC command before the IPC task in the firmware has completed.
This then produces an error trace:

ERROR schedule_edf_task(), task already queued or running 3

and the IPC is dropped.

This commit fixes the race by making sure in asynchronous cases the
last of the two contexts notifies the host.

BugLink: https://github.com/thesofproject/sof/issues/4706
Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
2021-09-07 10:52:46 +01:00
.github .github/zephyr.yml: update docker for cmake requirement 2021-08-23 10:04:56 +01:00
doc sof.doxygen.in: add CONFIG_TRACE=1 2021-07-21 09:17:05 +01:00
installer installer: automate the creation of symlinks inside intel-signed/ 2021-06-04 12:05:44 +01:00
keys Move signing key pair from rimage/ up one level 2020-05-13 10:16:04 +01:00
rimage@9a26e45580 rimage: update rimage submodule to support cAVS SRAM size correction 2021-07-14 15:39:30 +01:00
scripts xtensa-build-zephyr: disable XCC build for Intel cAVS hw 2021-09-06 22:55:12 +01:00
smex smex/ldc.h: stop including rimage/sof/kernel/fw.h 2021-08-24 13:22:47 +03:00
src ipc: fix a IPC completion race 2021-09-07 10:52:46 +01:00
test dai: add support for initialisation delay 2021-08-31 21:14:37 +01:00
tools pipeline: trigger START from the task context 2021-08-31 21:14:37 +01:00
zephyr zephyr: add cache_attr.c in zephyr_library_sources 2021-08-27 14:00:10 +01:00
.gitignore gitignore: Add checkpatch temporary file to gitignore 2020-10-22 13:05:23 +01:00
.gitmodules .gitmodules: use a relative path 2021-04-01 13:03:01 +01:00
.travis.yml .github: replace HAVE_CONFIG KConfig hack with an override 2021-03-23 12:17:22 +00:00
CMakeLists.txt cmake: Link TGL Google hotword library 2021-06-11 13:53:12 +01:00
CODEOWNERS OWNERS: replace dgried with chiang831 2021-06-26 13:13:11 +01:00
Kconfig kconfig: allow SOF Kconfig to be included in other projects 2021-08-04 12:34:39 +01:00
Kconfig.sof refactor is_cached() to avoid buggy compiler optimization 2021-08-12 15:04:41 +01:00
Kconfig.xtos-build kconfig: move BUILD_VM_ROM Kconfig.xtos-build 2021-05-25 15:53:39 +01:00
Kconfig.xtos-dbg kconfig: move XTOS build specific debug options to a separate file 2021-05-25 15:53:39 +01:00
LICENCE LICENSE: Add Cadence license 2021-04-12 10:22:15 +01:00
README.md readme: remove IRC link 2021-06-16 22:13:08 +01:00

README.md

Sound Open Firmware

Status

GitHub Actions Build Status Gitter chat

Documentation

See docs

Running the tests

See unit testing documentation

Deployment

TODO: Add additional notes about how to deploy this on a live system

Contributing

See Contributing to the Project

License

This project is licensed under the BSD Clause 3 - see the LICENCE file for details