Repository navigation
cavs: create delta configuration presets that reflect preferred use cases - #2641
Conversation
The change is provided to address issues reported by users who try to execute workloads that exceed computing capacity provided by LP RO clock. On the other hand motivation to have a canary settings to check FW pipelines utilization is diminished as infrastructure improvements to measure compute utilization per component are introduced. Signed-off-by: Lech Betlej <lech.betlej@linux.intel.com>
lgirdwood
left a comment
There was a problem hiding this comment.
GH is showing this warning.
0724bcd to
56482ad
Compare
lgirdwood
left a comment
There was a problem hiding this comment.
This is fine for short term, but can we set this clock via IPC yet ?
Thinking here is that we need a single singed binary we can use both HP/LP clocks (selected via topology).
|
It's always a trade-off (on image size/FW complexity) between images that have all features and logic to switch between them in run-time compiled in and images with features selected at a compilation time. I agree that we need to discuss about long term approach. |
@lbetlej the patch looks good but for my education. What happens on the chrome platforms when workload exceeds compute capacity with LPRO set as default? |
Maybe it'd be better if topology would declare required MIPS and IRT that FW will choose clock. |
There was a problem hiding this comment.
I think that override in file name is not needed, cos it's already in override folder.
@lbetlej To make things easier I can add automatic generation of targets for overrides, just like for defconfigs.
So instead of something like:
make cannonlake_defconfig
cp ../src/arch/xtensa/configs/override/cannonlake_chrome.config .override
make overrideconfig
There will be
make cannonlake_defconfig
make cannonlake_chrome_override_config
There was a problem hiding this comment.
BTW I'm not sure if these files should have .config suffixes. I know defconfigs don't have extension in kernel, but not sure about non-defconfigs.
@lgirdwood Can you tell us, what's the best practice here?
There was a problem hiding this comment.
@jajanusz I like the idea , Could be multiple stages supported ? Like:
make cannonlake_defconfig
make cannonlake_chrome_override_config
make cannonlake_debug_override_config
There was a problem hiding this comment.
BTW I'm not sure if these files should have
.configsuffixes. I know defconfigs don't have extension in kernel, but not sure about non-defconfigs.
@lgirdwood Can you tell us, what's the best practice here?
@kv2019i Can you share the best practice?
There was a problem hiding this comment.
@jajanusz @lgirdwood Stacking is very common. Typically you merge the stacked configs to a single .config file, before running the actual build make target. E.g. for SOF kernel we have following instructions:
https://github.com/thesofproject/kconfig/blob/master/README.md
The filename conventions vary but e.g. in kernel non-defconfig files still have the ".config" suffix (e.g. arch/x86/Kconfig.debug). But e.g. in SOF kconfig repo, all config files have a "defconfig" suffix, so this is not universally followed (upstream kernel has exceptions as well).
There was a problem hiding this comment.
ok thanks for info, we will go for .config then for non-defconfig files
I'd go with this. I think @tlauda has some data for MCPS for each component, and this could be included in topology so we can configure the clock after load (and then eventually dynamically). |
|
@lgirdwood @jajanusz This is fine by me regarding clocks long term, that's what we planned. Of course there has to be a procedure to measure components in worst case condition (latency to memory access), for components like SRC probably we are talking about a mapping sampling ratio->MCPS etc. The PR is to address current implementation. |
|
@ranj063 Symptoms may be observed as FW xruns and/or IPC timeouts. |
|
@lbetlej |
As the number of configuration options is increased there is a need to clearly specify presets that reflect features options. Specifically the change adds option to enable Low Power Sequencer (LPS) and Low Power Ring oscillator together. The approach is based on keeping generic configuration in configs directory while the override directory contains only incremental delta information. The compilation flow assumes using make overrideconfig command. In example: make cannonlake_defconfig cp ../src/arch/xtensa/configs/override/cannonlake_chrome.config override.config make overrideconfig make bin Signed-off-by: Lech Betlej <lech.betlej@linux.intel.com>
56482ad to
15b246e
Compare
|
@jajanusz ACK for filenames length reduction |
|
SOFCI TEST |
|
@lgirdwood @xiulipan |
|
@jajanusz The Travis is not configured to response to that magic word. It seems to be some network issue for Travis, I can find the build history https://travis-ci.org/github/thesofproject/sof/builds/669242119 but the status is not updated here. I re-run the whole build hope it can work. Please check later. |
|
CI known issue |
|
@lgirdwood Yep, I think so. The Internet must be on heavy load as most of us are WFH :) |
As the number of FW configuration options is extending there is a need to clearly specify presets that reflect features options. This is an alternative to #2599 that is closer to linux concept of incremental update of kernel parameters.
The approach is based on keeping generic configuration in configs directory while the override directory contains only incremental delta information. The compilation flow assumes using make overrideconfig command. In example:
make cannonlake_defconfig
cp ../src/arch/xtensa/configs/override/cannonlake_chrome_override.config
override.config
make overrideconfig
make bin
Specifically the change separate presets for:
Future enhancement would include in example _debug_defconfig presets with all debug options enabled.