Describe the bug
CONFIG_LLEXT_EXPERIMENTAL is enabled by default on Chromebook's MTL platform. When restoring LLEXT module from DRAM of MTL platform, the LLEXT module loading will fail:
[ 0.000001] <inf> lib_manager: llext_manager_restore_from_dram: restored 1 modules with 1 LLEXT
...
[71320.086443] <wrn> ipc: ipc4_get_drv: the provided UUID (40f66c8b-5aa5-4345-8919-53ec431aaa98) can't be found!
[71320.086510] <err> lib_manager: llext_manager_link_single: Name mismatch DAX vs.
[71320.086516] <err> lib_manager: lib_manager_module_create: lib_manager_allocate_module() failed!
[71320.086546] <err> ipc: ipc4_init_module_instance: error: failed to init module 1000 : 0
[71320.086553] <err> ipc: ipc_cmd: ipc4: MODULE_MSG failed with err 104
This failure causes no sound output for the device.
To Reproduce
For MTL platform:
Cherry pick this PR (if not merged): audio: codec_adapter: add llext support for dax #10331
Compile DAX mock module with:
CONFIG_COMP_DOLBY_DAX_AUDIO_PROCESSING=m
CONFIG_COMP_DOLBY_DAX_AUDIO_PROCESSING_MOCK=y
Push sof-mtl.ri, LLEXT module of DAX and sof-mtl-rt1019-rt5682-dax.tplg to device
Play audio and wait for it to finish. After waiting 10 seconds, play the audio again to trigger the LLEXT restore mechanism, reproducing the issue.
Reproduction Rate
100%
Expected behavior
LLEXT resotring successes.
Impact
annoyance, cause I need to disable this feature on MTL platform
Environment
Branch name and commit hash of the 2 repositories: sof (firmware/topology) and linux (kernel driver).
Kernel: 6.6.76-08111-g8df27f55632a-dirty
SOF: v2.13-rc1-432-ge250a729e41b-dirty
Name of the topology file
Topology: sof-mtl-rt1019-rt5682-dax.tplg
Name of the platform(s) on which the bug is observed.
Screenshots or console output
See full SOF log:
[ 0.000001] <inf> init: print_version_banner: FW ABI 0x301d001 DBG ABI 0x5003000 tags SOF:v2.13-rc1-432-ge250a729e41b-dirty zephyr:v4.2.0-4610-ge876dee6f2e7 src hash 0x3c47bb23 (ref hash 0x3c47bb23)
*** Booting Zephyr OS build v4.2.0-4610-ge876dee6f2e7 ***
[ 0.000001] <inf> ipc: telemetry_init: Telemetry enabled. May affect performance
[ 0.000001] <inf> main: sof_app_main: SOF on intel_adsp
[ 0.000001] <inf> lib_manager: llext_manager_restore_from_dram: restored 1 modules with 1 LLEXT
[ 0.000001] <inf> main: sof_app_main: SOF initialized
[ 0.000001] <inf> ipc: ipc_cmd: rx : 0x19000000|0x0
[ 0.000001] <inf> dma: sof_dma_get: dma_get() ID 0 sref = 1 busy channels 0
[ 0.000001] <inf> ipc: ipc_cmd: rx : 0x18010000|0x0
[ 0.000003] <inf> dma: sof_dma_put: dma_put(), dma = 0x400d4410, sref = 0
[ 0.000003] <inf> lib_manager: lib_manager_load_library: loaded library id: 1
[ 0.000003] <inf> ipc: ipc_cmd: rx : 0x44000000|0x31400008
[71320.077960] <inf> ipc: ipc_cmd: rx : 0x44000000|0x3060004c
[71320.079188] <inf> ipc: ipc_cmd: rx : 0x11000005|0x0
[71320.079248] <inf> pipe: pipeline_new: pipeline new pipe_id 0 priority 0
[71320.079851] <inf> ipc: ipc_cmd: rx : 0x40000005|0x15
[71320.080125] <inf> dma: sof_dma_get: dma_get() ID 0 sref = 1 busy channels 0
[71320.080851] <inf> ipc: ipc_cmd: rx : 0x40000007|0x10
[71320.081478] <inf> ipc: ipc_cmd: rx : 0x44000007|0x30000018
[71320.082043] <inf> ipc: ipc_cmd: rx : 0x40000003|0xa
[71320.082805] <inf> ipc: ipc_cmd: rx : 0x47000000|0x0
[71320.083480] <inf> ipc: ipc_cmd: rx : 0x1101000b|0x0
[71320.083563] <inf> pipe: pipeline_new: pipeline new pipe_id 1 priority 0
[71320.084208] <inf> ipc: ipc_cmd: rx : 0x40000004|0x1000a
[71320.084995] <inf> ipc: ipc_cmd: rx : 0x40010007|0x10010
[71320.085675] <inf> ipc: ipc_cmd: rx : 0x44010007|0x30000018
[71320.086258] <inf> ipc: ipc_cmd: rx : 0x40001000|0x1201000a
[71320.086443] <wrn> ipc: ipc4_get_drv: the provided UUID (40f66c8b-5aa5-4345-8919-53ec431aaa98) can't be found!
[71320.086510] <err> lib_manager: llext_manager_link_single: Name mismatch DAX vs.
[71320.086516] <err> lib_manager: lib_manager_module_create: lib_manager_allocate_module() failed!
[71320.086546] <err> ipc: ipc4_init_module_instance: error: failed to init module 1000 : 0
[71320.086553] <err> ipc: ipc_cmd: ipc4: MODULE_MSG failed with err 104
[71320.087185] <inf> ipc: ipc_cmd: rx : 0x12010000|0x0
[71320.087563] <inf> ipc: ipc_cmd: rx : 0x47000000|0x0
[71320.088078] <inf> ipc: ipc_cmd: rx : 0x12000000|0x0
[71320.088163] <inf> dma: sof_dma_put: dma_put(), dma = 0x400d4410, sref = 0
[71320.089245] <inf> ipc: ipc_cmd: rx : 0x11000005|0x0
[71320.089295] <inf> pipe: pipeline_new: pipeline new pipe_id 0 priority 0
[71320.089801] <inf> ipc: ipc_cmd: rx : 0x40000005|0x15
[71320.089986] <inf> dma: sof_dma_get: dma_get() ID 0 sref = 1 busy channels 0
[71320.090653] <inf> ipc: ipc_cmd: rx : 0x40000007|0x10
[71320.091393] <inf> ipc: ipc_cmd: rx : 0x44000007|0x30000018
[71320.092033] <inf> ipc: ipc_cmd: rx : 0x40000003|0xa
[71320.092698] <inf> ipc: ipc_cmd: rx : 0x47000000|0x0
[71320.093398] <inf> ipc: ipc_cmd: rx : 0x1101000b|0x0
[71320.093456] <inf> pipe: pipeline_new: pipeline new pipe_id 1 priority 0
[71320.094133] <inf> ipc: ipc_cmd: rx : 0x40000004|0x1000a
[71320.094716] <inf> ipc: ipc_cmd: rx : 0x40010007|0x10010
[71320.095476] <inf> ipc: ipc_cmd: rx : 0x44010007|0x30000018
[71320.096061] <inf> ipc: ipc_cmd: rx : 0x40001000|0x1201000a
[71320.096295] <err> lib_manager: llext_manager_link_single: Name mismatch DAX vs.
[71320.096318] <err> lib_manager: lib_manager_module_create: lib_manager_allocate_module() failed!
[71320.096348] <err> ipc: ipc4_init_module_instance: error: failed to init module 1000 : 0
[71320.096355] <err> ipc: ipc_cmd: ipc4: MODULE_MSG failed with err 104
[71320.096910] <inf> ipc: ipc_cmd: rx : 0x12010000|0x0
[71320.097886] <inf> ipc: ipc_cmd: rx : 0x47000000|0x0
[71320.098520] <inf> ipc: ipc_cmd: rx : 0x12000000|0x0
[71320.098613] <inf> dma: sof_dma_put: dma_put(), dma = 0x400d4410, sref = 0
[71321.102120] <inf> ipc: ipc_cmd: rx : 0x11000005|0x0
[71321.102178] <inf> pipe: pipeline_new: pipeline new pipe_id 0 priority 0
[71321.102641] <inf> ipc: ipc_cmd: rx : 0x40000005|0x15
[71321.102890] <inf> dma: sof_dma_get: dma_get() ID 0 sref = 1 busy channels 0
[71321.103486] <inf> ipc: ipc_cmd: rx : 0x40000007|0x10
[71321.104503] <inf> ipc: ipc_cmd: rx : 0x44000007|0x30000018
[71321.105100] <inf> ipc: ipc_cmd: rx : 0x40000003|0xa
[71321.105818] <inf> ipc: ipc_cmd: rx : 0x47000000|0x0
[71321.106500] <inf> ipc: ipc_cmd: rx : 0x1101000b|0x0
[71321.106551] <inf> pipe: pipeline_new: pipeline new pipe_id 1 priority 0
[71321.107186] <inf> ipc: ipc_cmd: rx : 0x40000004|0x1000a
[71321.107791] <inf> ipc: ipc_cmd: rx : 0x40010007|0x10010
[71321.108630] <inf> ipc: ipc_cmd: rx : 0x44010007|0x30000018
[71321.109266] <inf> ipc: ipc_cmd: rx : 0x40001000|0x1201000a
[71321.109473] <err> lib_manager: llext_manager_link_single: Name mismatch DAX vs.
[71321.109496] <err> lib_manager: lib_manager_module_create: lib_manager_allocate_module() failed!
[71321.109531] <err> ipc: ipc4_init_module_instance: error: failed to init module 1000 : 0
[71321.109536] <err> ipc: ipc_cmd: ipc4: MODULE_MSG failed with err 104
[71321.110178] <inf> ipc: ipc_cmd: rx : 0x12010000|0x0
[71321.110895] <inf> ipc: ipc_cmd: rx : 0x47000000|0x0
[71321.111665] <inf> ipc: ipc_cmd: rx : 0x12000000|0x0
[71321.111773] <inf> dma: sof_dma_put: dma_put(), dma = 0x400d4410, sref = 0
[71321.112923] <inf> ipc: ipc_cmd: rx : 0x11000005|0x0
[71321.112988] <inf> pipe: pipeline_new: pipeline new pipe_id 0 priority 0
[71321.113608] <inf> ipc: ipc_cmd: rx : 0x40000005|0x15
[71321.113841] <inf> dma: sof_dma_get: dma_get() ID 0 sref = 1 busy channels 0
[71321.114456] <inf> ipc: ipc_cmd: rx : 0x40000007|0x10
[71321.115156] <inf> ipc: ipc_cmd: rx : 0x44000007|0x30000018
[71321.115705] <inf> ipc: ipc_cmd: rx : 0x40000003|0xa
[71321.116418] <inf> ipc: ipc_cmd: rx : 0x47000000|0x0
[71321.117098] <inf> ipc: ipc_cmd: rx : 0x1101000b|0x0
[71321.117165] <inf> pipe: pipeline_new: pipeline new pipe_id 1 priority 0
[71321.117621] <inf> ipc: ipc_cmd: rx : 0x40000004|0x1000a
[71321.118221] <inf> ipc: ipc_cmd: rx : 0x40010007|0x10010
[71321.118981] <inf> ipc: ipc_cmd: rx : 0x44010007|0x30000018
[71321.119598] <inf> ipc: ipc_cmd: rx : 0x40001000|0x1201000a
[71321.119798] <err> lib_manager: llext_manager_link_single: Name mismatch DAX vs.
[71321.119821] <err> lib_manager: lib_manager_module_create: lib_manager_allocate_module() failed!
[71321.119838] <err> ipc: ipc4_init_module_instance: error: failed to init module 1000 : 0
[71321.119845] <err> ipc: ipc_cmd: ipc4: MODULE_MSG failed with err 10
Describe the bug
CONFIG_LLEXT_EXPERIMENTAL is enabled by default on Chromebook's MTL platform. When restoring LLEXT module from DRAM of MTL platform, the LLEXT module loading will fail:
This failure causes no sound output for the device.
To Reproduce
For MTL platform:
sof-mtl.ri, LLEXT module of DAX andsof-mtl-rt1019-rt5682-dax.tplgto deviceReproduction Rate
100%
Expected behavior
LLEXT resotring successes.
Impact
annoyance, cause I need to disable this feature on MTL platform
Environment
Screenshots or console output
See full SOF log: