Skip to content

[BUG] Restored modules with LLEXT failed on MTL platform #10370

@checkupup

Description

@checkupup

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:

  1. Cherry pick this PR (if not merged): audio: codec_adapter: add llext support for dax #10331
  2. Compile DAX mock module with:
CONFIG_COMP_DOLBY_DAX_AUDIO_PROCESSING=m
CONFIG_COMP_DOLBY_DAX_AUDIO_PROCESSING_MOCK=y
  1. Push sof-mtl.ri, LLEXT module of DAX and sof-mtl-rt1019-rt5682-dax.tplg to device
  2. 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

  1. 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
  2. Name of the topology file
    • Topology: sof-mtl-rt1019-rt5682-dax.tplg
  3. Name of the platform(s) on which the bug is observed.
    • Platform: MTL

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working as expected

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions