On Tue, 31 Jul 2018 12:52:04 +0200, Hans Hu(SH-RD) wrote: > > Hi All, > > Try send an email. > > Appearance: > when use non-snoop + ioctl path combination, an issue occurs: > usage: aplay -D plughw:0,0 44100_S16_LE_2c.wav > Ubuntu, it performance intermittently noise; > > Root case: > Function set_pages_array_wc marked the PTE of the original address; Function set_memory_wc marked the PTE both original and after vmaped address. > [cid:image002.png@01D428FF.92621520] > However, cache or not in transmission process is based on the PTE of the later, and the set_pages_array_wc did't mark it, so a cache inconsistency issue occurs. > > Related bug: > SHA1 ID: 9ddf1aeb2134e72275c97a2c6ff2e3eb04f2f27a OK, so did you confirm that dropping the SG buffer support "fixes" the noise problem on your system? The easiest test would be like: --- a/sound/pci/hda/hda_controller.c +++ b/sound/pci/hda/hda_controller.c @@ -770,7 +770,7 @@ int snd_hda_attach_pcm_stream(struct hda_bus *_bus, struct hda_codec *codec, size = CONFIG_SND_HDA_PREALLOC_SIZE * 1024; if (size > MAX_PREALLOC_SIZE) size = MAX_PREALLOC_SIZE; - snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG, + snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, chip->card->dev, size, MAX_PREALLOC_SIZE); return 0; thanks, Takashi _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel