ALSA: pcm: Add debug print on memory allocation failure
authorAmadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Thu, 18 Mar 2021 16:06:16 +0000 (17:06 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 19 Mar 2021 15:54:47 +0000 (16:54 +0100)
Add debug prints after calls of do_alloc_pages. One simplification would
be to move print into do_alloc_pages, however it would cause spam in
logs, as preallocate_pcm_pages loops over do_alloc_pages trying lower
values in case of failures.

Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20210318160618.2504068-2-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/pcm_memory.c

index 289dd1f..2878c4c 100644 (file)
@@ -176,6 +176,10 @@ static void snd_pcm_lib_preallocate_proc_write(struct snd_info_entry *entry,
                                           substream->dma_buffer.dev.dev,
                                           size, &new_dmab) < 0) {
                                buffer->error = -ENOMEM;
+                               pr_debug("ALSA pcmC%dD%d%c,%d:%s: cannot preallocate for size %zu\n",
+                                        substream->pcm->card->number, substream->pcm->device,
+                                        substream->stream ? 'c' : 'p', substream->number,
+                                        substream->pcm->name, size);
                                return;
                        }
                        substream->buffer_bytes_max = size;
@@ -400,6 +404,10 @@ int snd_pcm_lib_malloc_pages(struct snd_pcm_substream *substream, size_t size)
                                   substream->dma_buffer.dev.dev,
                                   size, dmab) < 0) {
                        kfree(dmab);
+                       pr_debug("ALSA pcmC%dD%d%c,%d:%s: cannot preallocate for size %zu\n",
+                                substream->pcm->card->number, substream->pcm->device,
+                                substream->stream ? 'c' : 'p', substream->number,
+                                substream->pcm->name, size);
                        return -ENOMEM;
                }
        }