-
Notifications
You must be signed in to change notification settings - Fork 313
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Noise issue when XRUN injection for playback #506
Comments
@keqiaozhang Does GLK also have this issue? |
@mengdonglin |
@keqiaozhang please ask @cujomalainey if you get stuck enabling this on Chrome. |
Thanks @lgirdwood |
Apologies for the delay, I was flying back yesterday. |
On CNL with nocodec has the similar error log:
Test env: |
Looks like the volume component has had an overrun in each case (i.e. there is no space in the buffer) |
Thanks @cujomalainey, now I can do xrun injection on Yorp. |
@michalgrodzicki I guess you can reproduce on Yorp too ? |
This issue still can be reproduced on new debug/cros-v4.14-rebase kernel branch. How to reproduce:
|
@markyang @Jiangxinx ok so you have same HW, FW and topology. What about your kernel configs. Can you both paste the output of
This will show which SOF options are enabled/disabled. |
@lgirdwood I can reproduce it on UP2. The output of "grep -rn SOF .config" is
It looks like alsa's xrun handling will cause firmware's xrun.
|
@bardliao I've edited your above post using the markdown to make it easier to read. Does the FW recover from the XRUN and play correctly in this case/config/pipeline ? |
@lgirdwood No, it doesn't always play correctly after the XRUN. I record the output by my cell phone and attach it for your reference. I hit the keyboard at around 2.8 sec in the recorded file, and XRUN happens after that. |
@bardliao can you capture this will a line in cable on a PC/laptop (quality is bad from a phone). There are also guidelines for reporting audio quality issues that @mengdonglin recently updated. Please follow these on the website. |
@lgirdwood Thanks @keqiaozhang The recording file is attached. The file is done by loopback on GLK. We do xrun_injection in every 5 sec and there is a short pop when we do xrun_injection. Ideally, playback will recover after the short pop but sometimes it doesn't. We can see the spectrogram has changed after XRUN. I think we can invite firmware folks to check it. |
The content of xrun_injection.sh:
|
@slawblauciak Here are the steps used by Bard to reproduce this issue:
@bardliao Thanks for sharing |
@ranj063 @keyonjie @lgirdwood Following is the workaround added by @tlauda f396500 #125 (discussion about the fix is here) /* for playback copy it here, because scheduling won't work
* on this interrupt level
*/
if (p->sched_comp->params.direction == SOF_IPC_STREAM_PLAYBACK) {
ret = pipeline_copy(p->sched_comp);
if (ret < 0) {
trace_pipe_error_with_ids(p, "pipeline_xrun_recover() "
"error: pipeline_copy() "
"failed, ret = %d", ret);
return ret;
}
} So if the task is going to accepted running task to be added. You need to remove the above code or add more check in the pipeline_trigger |
Verified that this issue is fixed on glk-005-drop-stable branch. @markyang |
Summary: Test steps:
Test env: |
Summary:
Noise issue when XRUN injection for playback
No error in dmesg
the result is empty when run 'sudo ./sof-logger -l sof-apl.ldc-master-gcc'
error log:
0 1 VOLUME 60263494.947917 49.895832 volume.c:463 xro
0 2 COMP 60263497.552083 2.604167 ../../src/include/sof/audio/component.h:414 Xov
0 2 unknown 60263499.895833 2.343750 ../../src/include/sof/audio/component.h:415 value 65536
0 2 unknown 60263502.343750 2.447917 ../../src/include/sof/audio/component.h:416 value 384
0 1 PIPE 60263508.697917 6.354167 pipeline.c:903 ePU
0 1 unknown 60263510.885417 2.187500 pipeline.c:904 value 4
0 1 PIPE 60263513.645833 2.760417 pipeline.c:1198 pxr
Reproduce step:
Test env:
sof-master: bc50ce1
soft-master: a1dfcb7
kernel sof-dev: 2996b7e8cd0d
tplg: sof-apl-pcm512x.tplg
Log:
logger.txt
dmesg.log
The text was updated successfully, but these errors were encountered: