* sfxload / asfxload page allocation failure
@ 2004-04-13 11:37 holborn
2004-04-13 15:27 ` Takashi Iwai
0 siblings, 1 reply; 5+ messages in thread
From: holborn @ 2004-04-13 11:37 UTC (permalink / raw)
To: alsa-devel
Hi!
I have problems when i try to load "big" soundfonts, in older versions i was
load this soundfonts without probems.
when i run sfxload or asfxload with PC51f.sf2 (for example ... ) asfxload or
sfxload try to load but no returnd to command line. No way to kill the
process, no way to load other soundfonts and when i reboot i have this
message:
(Is hand copied ... maybe they are some typo errors)
sfxload: page allocation failure. order:0, mode:0xd1
Call Trace:
[<c013377a>] __alloc_pages+0x2e0/0x325
[<c01337de>] __get_free_pages+0x1f/0x41
[<c010d74f>] dma_alloc_coherent+0x47/0x7a
[<e09681b6>] snd_dma_hack_alloc_coherent+0x13e/0x14e [snd_page_alloc]
[<e096837c>] snd_malloc_dev_pages+0x4f/0x69 [snd_page_alloc]
[<e096853f>] snd_dma_alloc_pages+0xc2/0xc4 [snd_page_alloc]
[<e0a4e0d0>] synth_alloc_pages+0x5b/0x103 [snd_emu10k1]
[<e0a4df3d>] snd_emu10k1_synth_alloc+0x4a/0x96 [snd_emu10k1]
[<e0a10e8c>] snd_emu10k1_sample_new+0x84/0x1cd [snd_emu10k1_synth]
[<e0a44b40>] load_data+0x167/0x1b7 [snd_emux_synth]
[<e0a43f03>] snd_soundfont_load+0x12e/0x275 [snd_emux_synth]
[<e0a45de5<] snd_emux_load_patch_seq_oss+0xde/0x116 [snd_emux_synth]
[<e09ce49e>] snd_seq_oss_synth_load_patch+0x99/0x9b [snd_seq_oss]
[<e09cd9ce>] snd_seq_oss_write+0x16c/0x17e [snd_seq_oss]
[<e09cb0ba>] odev_write+0x0/0x14 [snd_seq_oss]
[<c0149cec>] vfs_write+0xb0/0x119
[<c0149dfa>] sys_write+0x42/0x63
[<c0106d33>] syscall_cal+0x7/0xb
I have the same error in a gentoo
Driver version 1.0.4rc2 in kernel 2.6.5
and also in debian same kernel same alsa version of course .. :)
Small soundfonts (8MB) loads perfect ...
Thanks
Josep
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: sfxload / asfxload page allocation failure
2004-04-13 11:37 sfxload / asfxload page allocation failure holborn
@ 2004-04-13 15:27 ` Takashi Iwai
2004-04-13 16:22 ` holborn
0 siblings, 1 reply; 5+ messages in thread
From: Takashi Iwai @ 2004-04-13 15:27 UTC (permalink / raw)
To: holborn; +Cc: alsa-devel
At Tue, 13 Apr 2004 12:37:10 +0100,
holborn wrote:
>
>
> Hi!
>
> I have problems when i try to load "big" soundfonts, in older versions i was
> load this soundfonts without probems.
>
> when i run sfxload or asfxload with PC51f.sf2 (for example ... ) asfxload or
> sfxload try to load but no returnd to command line. No way to kill the
> process, no way to load other soundfonts and when i reboot i have this
> message:
well, it means that your machine has really no RAM available for the
soundfont. on 2.4 kernel (or older ALSA version), the driver
allocated the pages in atomic, so it doesn't go to sleep.
on 2.6 and current ALSA, the page allocation is done with GFP_KERNEL,
so it may sleep until the page is available. it can take a long time
but must not be infinitely long.
could you check whether the "page allocation failure" message already
appeared when sfxload hangs up?
does the message appears once or many times?
Takashi
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: sfxload / asfxload page allocation failure
2004-04-13 15:27 ` Takashi Iwai
@ 2004-04-13 16:22 ` holborn
2004-04-13 17:00 ` Takashi Iwai
0 siblings, 1 reply; 5+ messages in thread
From: holborn @ 2004-04-13 16:22 UTC (permalink / raw)
To: alsa-devel; +Cc: Takashi Iwai
On Martes 13 Abril 2004 16:27, Takashi Iwai wrote:
> At Tue, 13 Apr 2004 12:37:10 +0100,
>
>
> well, it means that your machine has really no RAM available for the
> soundfont. on 2.4 kernel (or older ALSA version), the driver
> allocated the pages in atomic, so it doesn't go to sleep.
> on 2.6 and current ALSA, the page allocation is done with GFP_KERNEL,
> so it may sleep until the page is available. it can take a long time
> but must not be infinitely long.
>
> could you check whether the "page allocation failure" message already
> appeared when sfxload hangs up?
> does the message appears once or many times?
>
>
Hi ... the message appears after reboot command ...
I have load this soundfonts for years :-)
No problems to load the soundfont in kernel 2.6.4 alsa 1.0.2c but still no
load in 2.6.5, i checked in two machines gentoo and Debian ..
I made the sfxload after booting ...
free command after login is:
Mem total 515728 used 37940 free 477788 ----> in kernel 2.6.5
Mem total 515728 used 38916 free 476824 ----> in kernel 2.6.4
Then i try to run sfxload .... in kernel 2.6.4 loads in a seconds ... in
kernel 2.6.5 i wait minutes .... then i login in other tty and i try to kill
the sfxload .... no way ... and i use reboot command .... then appears the
error message.
Thanks
Josep
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: sfxload / asfxload page allocation failure
2004-04-13 16:22 ` holborn
@ 2004-04-13 17:00 ` Takashi Iwai
2004-04-14 1:25 ` holborn
0 siblings, 1 reply; 5+ messages in thread
From: Takashi Iwai @ 2004-04-13 17:00 UTC (permalink / raw)
To: holborn; +Cc: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 1298 bytes --]
At Tue, 13 Apr 2004 17:22:52 +0100,
holborn wrote:
>
> On Martes 13 Abril 2004 16:27, Takashi Iwai wrote:
> > At Tue, 13 Apr 2004 12:37:10 +0100,
> >
>
> >
> > well, it means that your machine has really no RAM available for the
> > soundfont. on 2.4 kernel (or older ALSA version), the driver
> > allocated the pages in atomic, so it doesn't go to sleep.
> > on 2.6 and current ALSA, the page allocation is done with GFP_KERNEL,
> > so it may sleep until the page is available. it can take a long time
> > but must not be infinitely long.
> >
> > could you check whether the "page allocation failure" message already
> > appeared when sfxload hangs up?
> > does the message appears once or many times?
> >
> >
>
> Hi ... the message appears after reboot command ...
> I have load this soundfonts for years :-)
> No problems to load the soundfont in kernel 2.6.4 alsa 1.0.2c but still no
> load in 2.6.5, i checked in two machines gentoo and Debian ..
>
>
> I made the sfxload after booting ...
>
>
> free command after login is:
>
> Mem total 515728 used 37940 free 477788 ----> in kernel 2.6.5
> Mem total 515728 used 38916 free 476824 ----> in kernel 2.6.4
hmm, then it shouldn't fail.
i guess the attached patch fixes the problem. please give a try.
Takashi
[-- Attachment #2: Type: text/plain, Size: 1399 bytes --]
Index: alsa-kernel/core/memalloc.c
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-kernel/core/memalloc.c,v
retrieving revision 1.30
diff -u -r1.30 memalloc.c
--- alsa-kernel/core/memalloc.c 7 Apr 2004 17:49:39 -0000 1.30
+++ alsa-kernel/core/memalloc.c 13 Apr 2004 16:58:05 -0000
@@ -137,14 +137,17 @@
dma_addr_t *dma_handle, int flags)
{
void *ret;
- u64 dma_mask;
+ u64 dma_mask, coherent_dma_mask;
if (dev == NULL || !dev->dma_mask)
return dma_alloc_coherent(dev, size, dma_handle, flags);
dma_mask = *dev->dma_mask;
+ coherent_dma_mask = dev->coherent_dma_mask;
*dev->dma_mask = 0xffffffff; /* do without masking */
+ dev->coherent_dma_mask = 0xffffffff; /* do without masking */
ret = dma_alloc_coherent(dev, size, dma_handle, flags);
*dev->dma_mask = dma_mask; /* restore */
+ dev->coherent_dma_mask = coherent_dma_mask; /* restore */
if (ret) {
/* obtained address is out of range? */
if (((unsigned long)*dma_handle + size - 1) & ~dma_mask) {
@@ -154,8 +157,12 @@
}
} else {
/* wish to success now with the proper mask... */
- if (dma_mask != 0xffffffffUL)
+ if (dma_mask != 0xffffffffUL) {
+ /* allocation with GFP_ATOMIC to avoid the long stall */
+ flags &= ~GFP_KERNEL;
+ flags |= GFP_ATOMIC;
ret = dma_alloc_coherent(dev, size, dma_handle, flags);
+ }
}
return ret;
}
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: sfxload / asfxload page allocation failure
2004-04-13 17:00 ` Takashi Iwai
@ 2004-04-14 1:25 ` holborn
0 siblings, 0 replies; 5+ messages in thread
From: holborn @ 2004-04-14 1:25 UTC (permalink / raw)
To: alsa-devel; +Cc: Takashi Iwai
Hi!
On Martes 13 Abril 2004 18:00, Takashi Iwai wrote:
>
> hmm, then it shouldn't fail.
> i guess the attached patch fixes the problem. please give a try.
>
Now is perfect ..... thanks.
You are the best :)
Josep
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2004-04-14 1:25 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-04-13 11:37 sfxload / asfxload page allocation failure holborn
2004-04-13 15:27 ` Takashi Iwai
2004-04-13 16:22 ` holborn
2004-04-13 17:00 ` Takashi Iwai
2004-04-14 1:25 ` holborn
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.