You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Stress] IPC times out during the volume change #780
@keqiaozhang@markyang can someone create a stress test for IPC. i.e. to send a volume change IPC command 10000 times with and without an active playback stream. This could be related to #784
@lgirdwood
I wrote a script for ipc stress test and reproduced this issue after 125 iterations. I tested volume change with an active playback/capture stream at this time. I will test it without the playback or capture stream next.
firmware branch: glk-005-drop-stable
dmesg:
@keqiaozhang pls upstream the script when you get time. Please provide the test results with and without the active playback stream. Can you also try this with @keyonjie scheduler PR #778 during playback.
@keyonjie@lgirdwood
Today I tested this issue with new sof branch sof-glk006-drop-stable, looks like this branch is much stable. w/o playback/capture stream, volume change passed 10000 iterations.
w/ playback/capture stream, volume change have passed 6000+ iterations, test is on going.
I will do more test to confirm it. @markyang will help to test PR #778 first on UP2 board.
On 1/25/19 9:52 AM, Liam Girdwood wrote:
@keqiaozhang <https://github.com/keqiaozhang> thanks, good info. The
differences between master and glk6 are
|git log --left-right --graph --cherry-pick --oneline gh/master
^gh/glk-006-drop-stable > 3dbd1fb (gh/master) pipeline: add a flag
for FW xrun recovery disabling > 724d267 dw-dma: add start delay for
timer driven capture streams > 905bad4 scripts: xtensa-build-all: Add
support to force build UP Arch > 26a6541 GDB: Initialized from IPC
handler + generalized debug addresses. > c30f2fc GDB: Adjusted to new
build system. > cfdfcf5 GDB: Added packet parser. > 9a3555e MEMORY:
Enabled LP SRAM for ICL platform. > d53466a IPC: port PM D3 entry
fixes to CNL, WHL & CML > cfaaa7e Merge pull request #880 from
plbossart/fix/kmod_scripts |\ | > 7f7e48e kmod_scripts: fix
dependencies and add delays > 0cd5fb0 Merge pull request #878 from
jajanusz/update-cmocka-git |\ | > 97f3b70 cmake: update cmocka git >
570ce06 Merge pull request #877 from dbaluta/master > 7c37501
drivers: Remove unused host_msg field |
Do you get the same results as master ?
I don't quite get the diffs (redid them on my side), this telling me
there are no outstanding patches on glk6 that aren't in master, and I
don't quite see anything that looks related to IPC on Up2? Wondering
what makes glk6 work better or if we are comparing the right things
(same SMP configuration, etc)?
@keqiaozhang btw, with the latest repo, you can use '-u' to force UP(non-SMP) building, such as:
./scripts/xtensa-build-all.sh -l -u -j apl
@keqiaozhang , I don't see you clearly responded Keyon's ask for non-SMP test results. The test results on 005 branch (the "bad" one) of non-SMP (with -u) and SMP (without -u) can provide important reference for developers on the two hot topics we're chasing, SMP and IPC timeout in simultaneous pipelines. previous issues like this one demonstrated that turning off SMP can dramatically reduce some failure of IPC errors (not timeout). There were speculations that it might be related with SMP. I think that's why Keyon asked you to test if non-SMP make differences on the "bad" one, even though people lean towards the root cause of IPC timeout is yet another undiscovered scheduler bug such as #778
@keqiaozhang btw, with the latest repo, you can use '-u' to force UP(non-SMP) building, such as:
./scripts/xtensa-build-all.sh -l -u -j apl
@keqiaozhang , I don't see you clearly responded Keyon's ask for non-SMP test results. The test results on 005 branch (the "bad" one) of non-SMP (with -u) and SMP (without -u) can provide important reference for developers on the two hot topics we're chasing, SMP and IPC timeout in simultaneous pipelines. previous issues like this one demonstrated that turning off SMP can dramatically reduce some failure of IPC errors (not timeout). There were speculations that it might be related with SMP. I think that's why Keyon asked you to test if non-SMP make differences on the "bad" one, even though people lean towards the root cause of IPC timeout is yet another undiscovered scheduler bug such as #778
Updated:
glk005 branch + smp: can reproduce this issue.
glk005 branch + up: test is on going.
glk006 branch + smp: can reproduce this issueafter 895 iterations.
glk006 branch + up: cannot reproduce this issue.
@lgirdwood@wenqingfu
Update the test result:
glk005 branch + smp: can reproduce this issue.
glk005 branch + up: cannot reproduce this issue.
glk006 branch + smp: can reproduce this issue after 895 iterations.
glk006 branch + up: cannot reproduce this issue.
looks like this issue is related to 'smp', will do more tests to prove it.
Summary:
w/ playback stream on APL with PCM512x, volume change passed 10000 iterations with the latest non-SMP firmware built by ./scripts/xtensa-build-all.sh -l -u -j apl.
Test steps:
1. aplay -Dhw:0,0 -c2 -fS16_LE -vv -i /dev/zero # in terminal 1
2. ./volume-change-loop.sh # in terminal 2, run 10000 times
Test env:
sof master: f9e5bba
kernel sof-dev: 7b67e0b
tplg: sof-apl-pcm512x.tplg
Activity
[-]IPC times out during the volume change[/-][+][Stress] IPC times out during the volume change[/+]lgirdwood commentedon Jan 23, 2019
@keqiaozhang @markyang can someone create a stress test for IPC. i.e. to send a volume change IPC command 10000 times with and without an active playback stream. This could be related to #784
keqiaozhang commentedon Jan 24, 2019
@lgirdwood
I wrote a script for ipc stress test and reproduced this issue after 125 iterations. I tested volume change with an active playback/capture stream at this time. I will test it without the playback or capture stream next.
firmware branch: glk-005-drop-stable
dmesg:
test script:
dmesg.log
logger-t.log
sof-test-volume.txt
lgirdwood commentedon Jan 24, 2019
@keqiaozhang pls upstream the script when you get time. Please provide the test results with and without the active playback stream. Can you also try this with @keyonjie scheduler PR #778 during playback.
dabekjakub commentedon Jan 24, 2019
@wwittbrx Please reproduce this in our test enviroment.
keqiaozhang commentedon Jan 24, 2019
@lgirdwood
Without the active playback/capture, test failed at 5407th times.
trace:
dmesg:
dmesg.log
logger-t.log
logger.log
I will test with PR #778 tomorrow.
4 remaining items
keqiaozhang commentedon Jan 25, 2019
@keyonjie @lgirdwood
Today I tested this issue with new sof branch sof-glk006-drop-stable, looks like this branch is much stable. w/o playback/capture stream, volume change passed 10000 iterations.
w/ playback/capture stream, volume change have passed 6000+ iterations, test is on going.
I will do more test to confirm it.
@markyang will help to test PR #778 first on UP2 board.
lgirdwood commentedon Jan 25, 2019
@keqiaozhang thanks, good info. The differences between master and glk6 are
Do you get the same results as master ?
lgirdwood commentedon Jan 25, 2019
@plbossart fyi
plbossart commentedon Jan 25, 2019
lgirdwood commentedon Jan 25, 2019
@plbossart I think the issues were reported on glk5, so I would expect glk6 to behave similar to master. Just need @keqiaozhang to confirm.
wenqingfu commentedon Jan 26, 2019
@keqiaozhang , I don't see you clearly responded Keyon's ask for non-SMP test results. The test results on 005 branch (the "bad" one) of non-SMP (with -u) and SMP (without -u) can provide important reference for developers on the two hot topics we're chasing, SMP and IPC timeout in simultaneous pipelines. previous issues like this one demonstrated that turning off SMP can dramatically reduce some failure of IPC errors (not timeout). There were speculations that it might be related with SMP. I think that's why Keyon asked you to test if non-SMP make differences on the "bad" one, even though people lean towards the root cause of IPC timeout is yet another undiscovered scheduler bug such as #778
keqiaozhang commentedon Jan 28, 2019
@wenqingfu @lgirdwood
Update the current status:
keyonjie commentedon Jan 28, 2019
Hi @keqiaozhang, if we can't reproduce it with "master + up", then we don't need #778.
keqiaozhang commentedon Jan 28, 2019
Updated:
glk005 branch + smp: can reproduce this issue.
glk005 branch + up: test is on going.
glk006 branch + smp: can reproduce this issueafter 895 iterations.
glk006 branch + up: cannot reproduce this issue.
I will do more tests with 'up' next.
keqiaozhang commentedon Jan 29, 2019
@lgirdwood @wenqingfu
Update the test result:
glk005 branch + smp: can reproduce this issue.
glk005 branch + up: cannot reproduce this issue.
glk006 branch + smp: can reproduce this issue after 895 iterations.
glk006 branch + up: cannot reproduce this issue.
looks like this issue is related to 'smp', will do more tests to prove it.
markyang commentedon Jan 29, 2019
Summary:
w/ playback stream on APL with PCM512x, volume change passed 10000 iterations with the latest non-SMP firmware built by
./scripts/xtensa-build-all.sh -l -u -j apl.Test steps:
Test env:
sof master: f9e5bba
kernel sof-dev: 7b67e0b
tplg: sof-apl-pcm512x.tplg
Scripts
volume-change-loop.sh.txt
keqiaozhang commentedon Jan 29, 2019
@lgirdwood @wenqingfu
non-smp is more stable, I only met failure once in the past 24 hours of testing.
wenqingfu commentedon Mar 28, 2019
@keqiaozhang would you mind giving it a test refresh to see if this bug is still active? thanks!
keqiaozhang commentedon Mar 28, 2019
Confirmed that this issue is fixed on glk-011-drop-stable branch. It can pass 10000 iterations without errors.
let's close this bug.