All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Chris Rankin <rankincj@yahoo.com>
Cc: alsa-devel@lists.sourceforge.net
Subject: Re: Memory problems are back with SB Live!
Date: Thu, 28 Nov 2002 17:48:39 +0100	[thread overview]
Message-ID: <s5hn0ntzllk.wl@alsa2.suse.de> (raw)
In-Reply-To: <20021119215516.8350.qmail@web40606.mail.yahoo.com>

[-- Attachment #1: Type: text/plain, Size: 1041 bytes --]

Hi Chris,

sorry for late reply - i'm just back from vacation.

At Tue, 19 Nov 2002 21:55:16 +0000 (GMT),
Chris Rankin wrote:
> 
> Hi,
> 
> My box has now accumulated almost 3 weeks of uptime,
> and so the ALSA memory problem is back again:
> 
> $ aplay /usr/lib/sounds/jungle_exit.wav 
> Playing WAVE '/usr/lib/sounds/jungle_exit.wav' :
> Signed 16 bit Little Endian, Rate 22050 Hz, Stereo
> ALSA lib pcm_hw.c:297:(snd_pcm_hw_hw_params)
> SNDRV_PCM_IOCTL_HW_PARAMS failed: Cannot allocate
> memory
> aplay: set_params:814: Unable to install hw params:
> ACCESS:  RW_INTERLEAVED
> FORMAT:  S16_LE
> SUBFORMAT:  STD
> SAMPLE_BITS: 16
> FRAME_BITS: 32
> CHANNELS: 2
> RATE: 22050
> PERIOD_TIME: 100000
> PERIOD_SIZE: 2205
> PERIOD_BYTES: 8820
> PERIODS: 5
> BUFFER_TIME: 500000
> BUFFER_SIZE: 11025
> BUFFER_BYTES: 44100
> TICK_TIME: 10000
> 
> Is that patch you sent me to hack^Wfix this still
> relevant, or will it make things worse?

i found bugs in the old patch.
the attached patch should work better.
could you try it?


ciao,

Takashi

[-- Attachment #2: sgbuf-getpage.dif --]
[-- Type: application/octet-stream, Size: 1191 bytes --]

Index: alsa-kernel/core/pcm_sgbuf.c
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-kernel/core/pcm_sgbuf.c,v
retrieving revision 1.7
diff -u -r1.7 pcm_sgbuf.c
--- alsa-kernel/core/pcm_sgbuf.c	10 Sep 2002 10:20:00 -0000	1.7
+++ alsa-kernel/core/pcm_sgbuf.c	28 Oct 2002 14:35:43 -0000
@@ -128,7 +128,32 @@
 	while (sgbuf->pages < pages) {
 		void *ptr;
 		dma_addr_t addr;
+#ifdef __i386__
+		/* HACK! we try to allocate with GFP_KERNEL */
+		unsigned long rmask;
+		if (sgbuf->pci)
+			rmask = ~(unsigned long)sgbuf->pci->dma_mask;
+		else
+			rmask = 0;
+		ptr = (void *)__get_free_page(GFP_KERNEL);
+		if (ptr) {
+			addr = virt_to_phys(ptr);
+			if (((unsigned long)addr + PAGE_SIZE - 1) & rmask) {
+				/* reallocate with the proper mask */
+				free_page((unsigned long)ptr);
+				ptr = (void *)__get_free_page(GFP_KERNEL | GFP_DMA);
+				if (ptr)
+					addr = virt_to_phys(ptr);
+				else
+					addr = 0;
+			}
+		} else
+			addr = 0;
+		if (ptr)
+			memset(ptr, 0, PAGE_SIZE);
+#else
 		ptr = snd_malloc_pci_pages(sgbuf->pci, PAGE_SIZE, &addr);
+#endif
 		if (! ptr)
 			return -ENOMEM;
 		sgbuf->table[sgbuf->pages].buf = ptr;

      reply	other threads:[~2002-11-28 16:48 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-19 21:55 Memory problems are back with SB Live! Chris Rankin
2002-11-28 16:48 ` Takashi Iwai [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5hn0ntzllk.wl@alsa2.suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@lists.sourceforge.net \
    --cc=rankincj@yahoo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.