-
Notifications
You must be signed in to change notification settings - Fork 318
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
LNL: all LLEXT-capable modules as "m" #9322
Conversation
I have no comments on the changes in the PR. I wasn't at the meeting where we decided to enable this feature on all platforms and I have no opinion. But I will take this opportunity to ask questions about LLEXT:
|
@tmleman wrote:
I think this will go away as it was a way to introduce modules as an optional build option, but if we move default configs to use modules, then this is no longer needed.
This is needed to handle toolchain differences, see #9151 |
Add a Kconfig option that can be used to flip all LLEXT-supporting code to a modular build. Use that global flag for smart-amp-test, mixin-mixout and eq-iir. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
Enable CONFIG_LIBRARY_DEFAULT_MODULAR for LNL to build all supporting code as LLEXT modules. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
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.
@@ -3,6 +3,7 @@ | |||
config COMP_MIXIN_MIXOUT | |||
tristate "Mixin_mixout component" | |||
depends on IPC_MAJOR_4 | |||
default m if LIBRARY_DEFAULT_MODULAR |
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.
(Regardless of loadable modules method) I see no reason in switching such frequently used module if we will load it always anyway.
I checked "reference firmware" and they are not using loadable option for typical modules, only for rarely used or external modules so I think we could optimize our settings similarly
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.
@abonislawski Today we are quite monolithic once FW and library has been loaded into SRAM, this works today, but is not fully optimal if we want to be more aggressive for PnP and offload more to DSP. Long term we need to optimize our hot code more to run on SRAM and cold code on IMR/DRAM, being able to unload (delete from SRAM and keep in IMR/DRAM) is needed if we want to maximize offload capability with limited SRAM. i.e. we can unload to swap media decoder modules (or other modules), power off SRAM banks when not used, change processing coefficients (e.g. switching SRC rates), unload init code (only used once), etc.
@llyakh can please look at the Zephyr SDK + zero Kconfig cc: |
So far LNL is not switching all modules to LLEXT by default |
switch smart-amp-sample, eq-iir and mixin-mixout to LLEXT modules on Lunarlake by default