thesofproject / sof-test

BSD 3-Clause "New" or "Revised" License
13 stars 45 forks source link

[FEATURE] Test IPC large message IO whilst playback and capture are active #847

Open lgirdwood opened 2 years ago

lgirdwood commented 2 years ago

Is your feature request related to a problem? Please describe. Intermittent issue when sending large config IPC data to component whilst playback and capture active. We are not testing large IPC messages in any test IIUC today. See https://github.com/thesofproject/sof/issues/4769

Describe the solution you'd like Test script for large config IPC. Dummy WOV or any other module that takes large config module could be IPC target. Also an option to stress the large IPC to send 1000s of messages.

lgirdwood commented 2 years ago

@singalsu which common processing component accepts large IPC config data today ? This could be the test target as it wont require topology updates ?

plbossart commented 2 years ago

@lgirdwood We don't have such components in most topologies used in CI, the only one I see is CML_HEL_RT5682

So before we come-up with a test we need to have something to test, maybe by adding a EQ to the nocodec topologies after the mixer?

lgirdwood commented 2 years ago

I think IIR or FIR is one such component and IIUC we use it on some HDA pipes for pop removal ?

plbossart commented 2 years ago

that's correct, we use EQIIR in all nocodec, HDAudio and SoundWire topologies on the input paths.

singalsu commented 2 years ago

@singalsu which common processing component accepts large IPC config data today ? This could be the test target as it wont require topology updates ?

FIR component accepts large config, e.g. https://github.com/thesofproject/sof/blob/main/tools/ctl/eq_fir_loudness.txt or https://github.com/thesofproject/sof/blob/main/tools/topology/topology1/m4/eq_fir_coef_loudness.m4 .

From ready-made topologies sof-cml-rt1011-rt5682-eq.tplg contains FIR in the speaker path. Topology sof-cml-eq-fir-rt5682.tplg contains it in the capture path.

Beamformer topologies are by default large, e.g. sof-cml-rt1011-rt5682-tdfb_68mm_2ch.tplg, sof-apl-pcm512x-tdfb_28mm-4ch.tplg, sof-hda-generic-tdfb_50mm-2ch.tplg.

plbossart commented 2 years ago

@singalsu does the component accept changes to the large config WHILE audio is streaming? I thought we had some restrictions.

marc-hb commented 2 years ago

Note we already have a check-ipc-flood.sh test but I don't know what it does. It's skipped on Zephyr with "need a debug firmware"

marc-hb commented 1 year ago

BTW I just noticed check-ipc-flood does not work with IPC4