Skip to content
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

Closed
wants to merge 2 commits into from
Closed

Conversation

lyakh
Copy link
Collaborator

@lyakh lyakh commented Jul 23, 2024

switch smart-amp-sample, eq-iir and mixin-mixout to LLEXT modules on Lunarlake by default

@tmleman
Copy link
Contributor

tmleman commented Aug 8, 2024

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:

  1. Why do overlay files such as module_overlay.conf even exist if this is enabled in platform configs?
  2. What is the purpose of this file llext_relocatable.conf existence? From what I see, it adds a side config without which MTL and LNL won't even build. Shouldn't this config then be among the platform configs? And why is it also added for PTL, where it is not needed?

@kv2019i
Copy link
Collaborator

kv2019i commented Aug 8, 2024

@tmleman wrote:

1. Why do overlay files such as [module_overlay.conf](https://github.com/thesofproject/sof/blob/main/app/overlays/mtl/module_overlay.conf) even exist if this is enabled in platform configs?

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.

2. What is the purpose of this file [llext_relocatable.conf](https://github.com/thesofproject/sof/blob/main/app/llext_relocatable.conf) existence? From what I see, it adds a side config without which MTL and LNL won't even build. Shouldn't this config then be among the platform configs? And why is it also added for PTL, where it is not needed?

This is needed to handle toolchain differences, see #9151

@lgirdwood lgirdwood added this to the v2.11 milestone Aug 9, 2024
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>
Copy link
Member

@lgirdwood lgirdwood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lyakh CI results look fine for Jenkins
@wszypelt @lrudyX not sure if this feature is tested on Internal CI yet ?

@@ -3,6 +3,7 @@
config COMP_MIXIN_MIXOUT
tristate "Mixin_mixout component"
depends on IPC_MAJOR_4
default m if LIBRARY_DEFAULT_MODULAR
Copy link
Member

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

Copy link
Member

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.

@marc-hb
Copy link
Collaborator

marc-hb commented Aug 26, 2024

@llyakh can please look at the Zephyr SDK + zero Kconfig warnings inconsistencies I just reported in #9151 (review) ?

cc:

@kv2019i kv2019i modified the milestones: v2.11, v2.12 Sep 13, 2024
@lyakh
Copy link
Collaborator Author

lyakh commented Sep 20, 2024

So far LNL is not switching all modules to LLEXT by default

@lyakh lyakh closed this Sep 20, 2024
@lyakh lyakh deleted the lnl branch September 20, 2024 07:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants