One of the benefits and common ways to use the Zephyr shell
subsystem is definition of application specific commands.
This commit adds the initial SOF custom command,
"sof test_inject_sched_gap". This new command allows to inject
scheduling gaps into low-latency timer scheduler execution,
using the domain_block() SOF interface. Optional argument
can be used to specify duration of the block in micro seconds.
The intent is to stress test a SOF configuration and test how
the system behaves when audio pipeline is briefly starved.
Example log of what is observed when test_inkect_sched_gap is
run:
[ 0.052431] <inf> ll_schedule: zephyr_domain_thread_fn: ll core 0 timer avg 3674, max 4326, overruns 0
[ 0.052831] <inf> ll_schedule: zephyr_domain_thread_fn: ll core 0 timer avg 3673, max 4318, overruns 0
~$
~$ sof test_inject_sched_gap 12000
[ 0.052968] <inf> ll_schedule: zephyr_domain_block: Blocking LL scheduler
[ 0.052973] <inf> ll_schedule: zephyr_domain_unblock: Unblocking LL scheduler
[ 0.052973] <inf> host_comp: host_get_copy_bytes_normal: comp:1 0x10004 no bytes to copy, available samples: 0, free_samples: 384
[ 0.053231] <inf> ll_schedule: zephyr_domain_thread_fn: ll core 0 timer avg 4074, max 437230, overruns 1
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>