forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 140
Closed
Labels
GLKApplies to Gemini LakeApplies to Gemini LakeWHLApplies to WhiskeyLake platformApplies to WhiskeyLake platformbugSomething isn't workingSomething isn't workingduplicateThis issue or pull request already existsThis issue or pull request already exists
Description
Describe the bug
This issue can occur when 2 pipeline playback are running in different terminals, terminating one of them will cause another pipeline stop with I/O error.
To Reproduce
- open two terminals and do playback on each terminal with different pcm device.
terminal 1 headset playback: aplay -Dhw:0,0 -f dat -c 2 audio.wav
terminal 2 HDMI playback: aplay -Dhw:0,2 -f dat -c 2 audio.wav - press ctl+c to stop HDMI playback, then check the status of the another one.
- At least use one HDA pcm device to do the playback.
Expected behavior
no interaction between each pipeline.
Impact
terminating one of them will cause another pipeline stop with I/O error.
Environment
- sof-master: 0c9326
- tplg: sof-whl-rt5682.tplg
- kernel-sof-dev: 90860
- platform: WHL-I2S
- Reproducibility Rate: 100%
Screenshots or console output
$ aplay -Dhw:0,0 -f dat -c 2 test.wav
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
underrun!!! (at least 0.047 ms long)
aplay: pcm_write:2011: write error: Input/output error
dmesg
no observes errors.
sof-logger
CORE LEVEL COMP_ID TIMESTAMP DELTA FILE_NAME CONTENT
0 1 VOLUME 27044583.385417 27044584.000000 src/audio/volume.c:465 volume_copy() error: source component buffer has not enough data available
0 1 PIPE 27044804.479167 221.093750 src/audio/pipeline.c:681 pipeline_copy() error: ret = -5, start->comp.id = 1, dir = 1
0 1 PIPE 1.5 27044811.041667 6.562500 src/audio/pipeline.c:789 pipeline_xrun_recover()
0 1 DMA 27045177.395833 366.354156 intel/cavs/hda-dma.c:279 hda-dmac: 5 wait for buffer full timeout
0 1 HOST 27045183.958333 6.562500 src/audio/host.c:792 host_copy() error: dma_copy() failed, ret = 4294967234
0 1 PIPE 27045189.947917 5.989583 src/audio/pipeline.c:681 pipeline_copy() error: ret = -62, start->comp.id = 4, dir = 1
0 1 PIPE 1.5 27045196.562500 6.614583 src/audio/pipeline.c:789 pipeline_xrun_recover()
0 1 COMP 27045209.479167 12.916667 rc/audio/component.c:201 comp_set_state() error: wrong state = 5, COMP_TRIGGER_PREPARE
0 1 PIPE 27045215.364583 5.885417 src/audio/pipeline.c:365 pipeline_prepare() error: ret = -22,dev->comp.id = 0
0 1 PIPE 1.5 27045221.614583 6.250000 src/audio/pipeline.c:796 pipeline_xrun_recover() error: pipeline_prepare() failed, ret = -22
0 1 PIPE 1.5 27045227.239583 5.625000 src/audio/pipeline.c:865 pipeline_task(): xrun recover failed! pipeline will be stopped!
logger-t :
0 2 BUFFER 27043352.395833 1244.635376 src/audio/buffer.c:127 comp_update_buffer_produce(), no bytes to produce
0 2 DMA 27043357.031250 4.635417 intel/cavs/hda-dma.c:627 hda-dmac: 5 channel 0 -> stop
0 1 VOLUME 27044583.385417 1226.354126 src/audio/volume.c:465 volume_copy() error: source component buffer has not enough data available
0 2 COMP 27044589.270833 5.885417 of/audio/component.h:700 comp_underrun(), ((dev->comp.id << 16) | source->avail) = 65536, ((min_bytes << 16) | copy_bytes) = 0
0 2 PIPE 1.5 27044593.281250 4.010417 src/audio/pipeline.c:540 pipeline_trigger()
0 2 HOST 27044597.447917 4.166667 src/audio/host.c:283 host_trigger()
0 2 DMA 27044602.083333 4.635417 intel/cavs/hda-dma.c:627 hda-dmac: 5 channel 0 -> stop
0 2 VOLUME 27044606.562500 4.479167 src/audio/volume.c:434 volume_trigger()
0 2 DAI 1.4 27044610.729167 4.166667 src/audio/dai.c:528 dai_comp_trigger(), command = 8
0 2 DAI 1.4 27044614.635417 3.906250 src/audio/dai.c:586 dai_comp_trigger(), XRUN
0 2 DAI 1.4 27044618.125000 3.489583 src/audio/dai.c:592 dai_comp_trigger(), PAUSE/STOP
0 2 DMA 27044621.770833 3.645833 src/drivers/dw/dma.c:456 dw_dma_stop(): dma 0 channel 0 stop
0 2 SSP 27044630.520833 8.750000 ers/intel/cavs/ssp.c:812 ssp_trigger() cmd 0
0 2 SSP 27044793.333333 162.812500 ers/intel/cavs/ssp.c:793 ssp_stop(), TX stop
0 2 SSP 27044798.177083 4.843750 ers/intel/cavs/ssp.c:802 ssp_stop(), SSP port disabled
0 1 PIPE 27044804.479167 6.302083 src/audio/pipeline.c:681 pipeline_copy() error: ret = -5, start->comp.id = 1, dir = 1
0 1 PIPE 1.5 27044811.041667 6.562500 src/audio/pipeline.c:789 pipeline_xrun_recover()
0 2 PIPE 1.5 27044816.197917 5.156250 src/audio/pipeline.c:358 pipeline_prepare()
0 2 HOST 27044820.312500 4.114583 src/audio/host.c:635 host_prepare()
0 2 COMP 27044824.166667 3.854167 rc/audio/component.c:136 comp_set_state(), state already set to 3
0 2 PIPE 1.5 27044828.333333 4.166667 src/audio/pipeline.c:540 pipeline_trigger()
0 2 HOST 27044832.395833 4.062500 src/audio/host.c:283 host_trigger()
0 2 DMA 27044836.562500 4.166667 intel/cavs/hda-dma.c:533 hda-dmac: 5 channel 0 -> start
0 2 DMA 27044840.625000 4.062500 intel/cavs/hda-dma.c:369 hda-dmac: 5 channel 0 -> enable
0 2 VOLUME 27044898.958333 58.333332 src/audio/volume.c:434 volume_trigger()
0 2 DAI 1.4 27044902.916667 3.958333 src/audio/dai.c:528 dai_comp_trigger(), command = 1
0 2 DAI 1.4 27044906.770833 3.854167 src/audio/dai.c:539 dai_comp_trigger(), START
0 1 DMA 27045177.395833 270.625000 intel/cavs/hda-dma.c:279 hda-dmac: 5 wait for buffer full timeout
0 1 HOST 27045183.958333 6.562500 src/audio/host.c:792 host_copy() error: dma_copy() failed, ret = 4294967234
0 1 PIPE 27045189.947917 5.989583 src/audio/pipeline.c:681 pipeline_copy() error: ret = -62, start->comp.id = 4, dir = 1
0 1 PIPE 1.5 27045196.562500 6.614583 src/audio/pipeline.c:789 pipeline_xrun_recover()
0 2 PIPE 1.5 27045201.718750 5.156250 src/audio/pipeline.c:358 pipeline_prepare()
0 2 HOST 27045205.729167 4.010417 src/audio/host.c:635 host_prepare()
0 1 COMP 27045209.479167 3.750000 rc/audio/component.c:201 comp_set_state() error: wrong state = 5, COMP_TRIGGER_PREPARE
0 1 PIPE 27045215.364583 5.885417 src/audio/pipeline.c:365 pipeline_prepare() error: ret = -22,dev->comp.id = 0
0 1 PIPE 1.5 27045221.614583 6.250000 src/audio/pipeline.c:796 pipeline_xrun_recover() error: pipeline_prepare() failed, ret = -22
0 1 PIPE 1.5 27045227.239583 5.625000 src/audio/pipeline.c:865 pipeline_task(): xrun recover failed! pipeline will be stopped!
0 2 IPC 29281219.739583 2235992.500000 src/ipc/handler.c:480 ipc: comp 0 -> trigger cmd 0x50000
0 2 PIPE 1.5 29281224.739583 5.000000 src/audio/pipeline.c:540 pipeline_trigger()
0 2 HOST 29281229.322917 4.583333 src/audio/host.c:283 host_trigger()
0 2 DMA 29281234.010417 4.687500 intel/cavs/hda-dma.c:627 hda-dmac: 5 channel 0 -> stop
0 2 VOLUME 29281238.854167 4.843750 src/audio/volume.c:434 volume_trigger()
0 2 DAI 1.4 29281243.177083 4.322917 src/audio/dai.c:528 dai_comp_trigger(), command = 0
0 2 DAI 1.4 29281247.083333 3.906250 src/audio/dai.c:592 dai_comp_trigger(), PAUSE/STOP
0 2 DMA 29281251.041667 3.958333 src/drivers/dw/dma.c:456 dw_dma_stop(): dma 0 channel 0 stop
0 2 SSP 29281257.760417 6.718750 ers/intel/cavs/ssp.c:812 ssp_trigger() cmd 0
0 2 SSP 29281421.354167 163.593750 ers/intel/cavs/ssp.c:802 ssp_stop(), SSP port disabled
0 2 IPC 29281749.166667 327.812500 src/ipc/handler.c:369 ipc: comp 0 -> free
0 2 PIPE 1.5 29281753.802083 4.635417 src/audio/pipeline.c:583 pipeline_reset()
0 2 HOST 29281757.968750 4.166667 src/audio/host.c:699 host_reset()
0 2 DMA 29281762.135417 4.166667 intel/cavs/hda-dma.c:627 hda-dmac: 5 channel 0 -> stop
0 2 VOLUME 29281769.322917 7.187500 src/audio/volume.c:601 volume_reset()
Metadata
Metadata
Assignees
Labels
GLKApplies to Gemini LakeApplies to Gemini LakeWHLApplies to WhiskeyLake platformApplies to WhiskeyLake platformbugSomething isn't workingSomething isn't workingduplicateThis issue or pull request already existsThis issue or pull request already exists