-
Notifications
You must be signed in to change notification settings - Fork 350
[DRAFT] userspace LL/audio test PR #10558
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
Draft
kv2019i
wants to merge
112
commits into
thesofproject:main
Choose a base branch
from
kv2019i:feat/userspace-ll-wip
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from all commits
Commits
Show all changes
112 commits
Select commit
Hold shift + click to select a range
f0065a0
(---section submitted PRs START)
kv2019i c84e5e6
(---section submitted PRs STOP)
kv2019i 9011bd3
(---section: user LL infra START)
kv2019i 1375774
ipc: move standalone-test check later in ipc_init()
kv2019i 4992c5c
audio: component: add comp_grant_access_to_thread()
kv2019i 4b88295
pipeline: protect component connections with a mutex
kv2019i 7aa0732
audio: component: replace k_mutex with sys_mutex for list_mutex
kv2019i ceb9685
rtos: alloc.h: add sof_sys_user_heap_get()
kv2019i 225c89c
zephyr: rtos: userspace_helper.h: add sysuser memory partition
kv2019i 4c57ab1
zephyr: lib: make sof_heap_alloc/free system calls
kv2019i e51fc1e
schedule: zephyr_ll_user: make the heap accessible from user-space
kv2019i 4592862
schedule: zephyr_ll: convert pdata->sem into a dynamic object
kv2019i dd8ab4c
schedule: zephyr_ll: replace dynamic k_sem with embedded sys_sem
kv2019i 8aaa004
schedule: zephyr_ll_user: move user accessible heap to common partition
kv2019i 6d617ae
dma: dma_sg: allocate on specific heap
kv2019i a9eac57
buffer: extend ability to allocate on specific heap to all functions
kv2019i 7530c71
app: overlays: ptl: add ll_usespace_overlay.conf
kv2019i 8adac7f
(---section: user LL infra STOP)
kv2019i 5c30af4
(---section host-zephyr START)
kv2019i 02e4706
zephyr: userspace: sof_dma: allow circular SG lists
kv2019i 44eed12
zephyr: lib: dma: make DMA platform data available to user-space
kv2019i 18748e8
audio: host-zephyr: select heap when allocating host buffers
kv2019i 011ace6
audio: host-zephyr: rework calls to DMA driver, remove channel pointer
kv2019i e96c5e7
audio: host-zephyr: pass component heap to dma_sg_alloc
kv2019i 1ec47dc
alloc.h: remove rbrelloac() and rbrealloc_align()
kv2019i 1b437a5
audio: host-zephyr: ensure host data heap is set
kv2019i ade66ae
audio: host-zephyr: make component usable from user-space
kv2019i 114f88a
(---section host-zephyr STOP)
kv2019i e68bd58
(---section dai-zephyr START)
kv2019i ca2841a
audio: buffer: replace notifier events with direct probe callbacks
kv2019i 787d23d
audio: dai-zephyr: make memory allocations user-space compatible
kv2019i f48c064
lib: dai: make dai_get() and dai_put() compatible with user-space
kv2019i b61f3d2
audio: dai-zephyr: rework calls to DMA driver, remove channel pointer
kv2019i 0cbbabc
audio: dai-zephyr: convert spinlock into mutex for properties
kv2019i b4f5bdf
audio: dai-zephyr: migrate to use dai_get_properties_copy()
kv2019i d0602c3
dai: zephyr: replace k_mutex with sys_mutex for DAI lock
kv2019i f52c0ed
(---section dai-zephyr STOP)
kv2019i 5c78e03
(---section audio module infra START)
kv2019i 13d0a61
audio: module_adapter: alloc from LL user heap if LL run in user
kv2019i 86b5ec8
audio: copier: export copier endpoint ops to user-space
kv2019i 628bd34
(---section schduler changes START)
kv2019i 946b67f
schedule: zephyr_ll: add zephyr_ll_task_free()
kv2019i aed4440
schedule: zephyr_ll: add zephyr_ll_grant_access()
kv2019i 557ed59
schedule: zephyr_ll_user: make double-mapping conditional
kv2019i 72364c0
schedule: allocate the scheduler objects with sof_heap_alloc
kv2019i b7108f6
WIP: schedule: limit user-LL to core0
kv2019i e56d9b2
zephyr: schedule: allow user-space to access scheduler list
kv2019i c0b5745
zephyr: wrapper: modify platform_dai_wallclock() for user-space
kv2019i 1686c64
schedule: add scheduler_init_context() and scheduler_free_context()
kv2019i a666ffc
schedule: zephyr_ll: implement scheduler_init_context()
kv2019i 093d582
schedule: ll_schedule_domain: add domain_thread_init/free ops
kv2019i 42ead8c
schedule: zephyr_ll: implement thread_init/free domain ops
kv2019i cc0fb6b
schedule: zephyr_ll: ISR check is not needed when LL in user-space
kv2019i e8db9ee
zephyr: userspace_helper: add new sys_user_heap_init()
kv2019i 7d657df
(---section schduler changes END)
kv2019i f3a7027
(---section audio-user PRs START)
kv2019i ea2fd9c
schedule: zephyr_domain: use a different thread name for user LL
kv2019i c2c095d
WIP: audio: module_adapter: use correct heap when freeing
kv2019i 2a8278a
coherent: disable core debug checks for user-space builds
kv2019i 7f8dabc
audio: place component driver list in user-space accessible partition
kv2019i a11f7a6
audio: module_adapter: make adapter buffering user-space compatible
kv2019i 4f88e54
audio: pipeline: use LL scheduler mutex for userspace pipeline triggers
kv2019i fc562f0
schedule: zephyr_ll: replace k_mutex with sys_mutex for scheduler lock
kv2019i d1bbfe6
audio: buffer: move dp_heap_user lifecycle to IPC and module adapter
kv2019i dc6d00a
audio: host-zepher: add HOST_DMA_IPC_POSITION_UPDATES Kconfig
kv2019i 9d7663f
audio: copier_host: make FPI sync group availble to user-space
kv2019i b5d21f9
audio: copier: avoid IRQ lock/unlock in chmap code
kv2019i c5c9d99
audio: module_adapter: avoid IRQ lock/unlock in prepare()
kv2019i 9fb382e
audio: module_adapter: make data_blob compatible with user-space
kv2019i 85e2935
audio: module-adapter: make generic.c user-space compatible
kv2019i dcbf37e
audio: make comp_drivers_get() accessible from user-space
kv2019i 5ea7484
dai: turn dai_get_device() into a syscall
kv2019i 85a7635
audio: chain_dma: add user-space memory and scheduling support
kv2019i 001652f
(---section audio user PRs STOP)
kv2019i adb4d18
(---section: IPC user support START)
kv2019i af720f1
userspace: split ipc files into user and kernel features. REVISIT memcpy
kv2019i e148d69
ipc4: helper: use LL scheduler lock for userspace builds
kv2019i 9d306c8
WIP: ipc: implement user-space IPC handling for CREATE_PIPELINE
kv2019i d9dee9d
WIP: ipc: ipc4: route PIPELINE_DELETE to user-space handler
kv2019i 2a84656
ipc: make IPC stack thread size configurable
8ad1f22
ipc: ipc4: use sof_heap_alloc in ipc4_add_comp_dev()
kv2019i 237bae5
ipc: turn ipc_msg_reply() into a system call
kv2019i 103e1c7
ipc: ipc4: use correct API to get DMA status
kv2019i ba8bd71
ipc: ipc4: dai: fix direct use of DMA driver calls
kv2019i eb266e6
ipc: use application heap for IPC pipeline and component allocations
kv2019i cd00090
ipc4: make fw_reg mutex available to user-space
kv2019i 78cb3bd
ipc: ipc4: helper: make ipc4_search_for_drv() userspace compatible
kv2019i 93e6185
WIP: schedule: add multi-core support for user-space LL scheduler
kv2019i ef92c30
ipc: ipc-helper: trace context not used in user-space
kv2019i 564fe14
ipc: ipc4: use the core number from IPC config
kv2019i 41eb699
ipc: ipc4: helper: enable limited ipc_comp_connect() in user-space
kv2019i b376fa8
WIP: ipc: ipc4: route MOD_CONFIG_GET/SET to user-space handler
kv2019i 74ebf9c
WIP: ipc: ipc4: route MOD_BIND/UNBIND to user-space handler
kv2019i b967cf4
WIP: ipc: ipc4: route MOD_INIT_INSTANCE to user-space handler
kv2019i bd1e9c3
WIP: ipc: ipc4: route GLB_SET_PIPELINE_STATE to user-space handler
kv2019i b0b772b
WIP: ipc: ipc4: route MOD_LARGE_CONFIG_GET/SET user-space
kv2019i ebd7ad8
(---section: IPC user support STOP)
kv2019i 13f3d81
(---section: START fixes for multipipeline tetss)
kv2019i e0d2254
sched: ll_user: add independent heap size config for LL userspace
kv2019i 982613b
app: overlays: ptl: set CONFIG_SOF_ZEPHYR_LL_USER_HEAP_SIZE
kv2019i 953f285
(---section: STOP fixes for multipipeline tetss)
kv2019i 4cf9b47
(---section: START IPC user notifications)
kv2019i 9021025
ipc: turn ipc_msg_send() into a system call if SOF_USERSPACE_LL=y
092de1e
ipc: make IPC message allocation userspace-safe
0bd5c20
(---section: STOP IPC user notifications)
kv2019i 15aac6c
(---section test-case START)
kv2019i c2a7c8b
zephyr: test: userspace: add pipeline_two_components test
kv2019i a722b7a
(---section WIP mandatory changes START)
kv2019i 5c2063a
audio: pipeline: enable position reporting for user-space pipelines
kv2019i c58cf14
WIP: ipc: expose coldrodata to IPC user thread
kv2019i 6a36525
HACK: audio: collection of feature limitations to run LL in user
kv2019i a22a976
[DO NOT MERGE] zephyr.yml: use Zephyr PR107341
kv2019i File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| CONFIG_SOF_USERSPACE_LL=y | ||
|
|
||
| # temporary (but for now mandatory) settings | ||
| CONFIG_SOF_ZEPHYR_USERSPACE_MODULE_HEAP_SIZE=16384 | ||
| CONFIG_SOF_ZEPHYR_LL_USER_HEAP_SIZE=0x20000 | ||
|
|
||
| # make the drivers work in user-space | ||
| CONFIG_SOF_USERSPACE_INTERFACE_DMA=y | ||
| CONFIG_DAI_USERSPACE=y | ||
|
|
||
| # disable features that don't work in user-space (at least yet) | ||
| CONFIG_COLD_STORE_EXECUTE_DEBUG=n | ||
| CONFIG_CROSS_CORE_STREAM=n | ||
| CONFIG_INTEL_ADSP_MIC_PRIVACY=n | ||
| CONFIG_XRUN_NOTIFICATIONS_ENABLE=n | ||
| CONFIG_SOF_BOOT_TEST_ALLOWED=n | ||
| CONFIG_SOF_TELEMETRY_PERFORMANCE_MEASUREMENTS=n | ||
| CONFIG_SOF_TELEMETRY_IO_PERFORMANCE_MEASUREMENTS=n | ||
|
|
||
| # disable llext (hits privilege issues in user-space now) | ||
| CONFIG_LLEXT_STORAGE_WRITABLE=n | ||
| CONFIG_LLEXT_EXPERIMENTAL=n | ||
| CONFIG_MODULES=n |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
the commit, that is mentioned in the commit message, only moved buffer context objects to particular heaps. This commit moves actual data buffers to them too, which is different and (arguably) more risky