[prev in list] [next in list] [prev in thread] [next in thread]
List: alsa-devel
Subject: Re: [alsa-devel] A bug about cache inconsistency report
From: Takashi Iwai <tiwai () suse ! de>
Date: 2018-07-31 11:59:20
Message-ID: s5h600vr4yv.wl-tiwai () suse ! de
[Download RAW message or body]
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@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic