Raymond wrote:
> you have to change max_buffer_size if you want to load a larger
> soundfont as default value is 128Mb
The issue is not with the size of the soundfont. The issue is that the 
kernel tries to put them into the 16MB ISA
DMA zone, being short of memory below 2GB.

Here's the technical explanation:

The kernel first tries to allocate 32bit memory for the soundfont. It 
then checks whether the allocated memory is
above the 2GB barrier. Having a hardware bug in the emu10k1, the 
hardware can only support DMA from the lowest 2GB
of memory because it simply ignores bit 31 of the address. The memory 
allocator then comes back with memory which is,
due to the memory allocation policy, *above* the 2GB barrier whenever 
more than 2GB is installed in the system.
This, of course, won't work, and the kernel/emu10k1 driver notices this, 
releases the memory and then tries next to take
the memory from the 16MB ISA zone. Of course, there isn't enough memory 
available to load the soundfont, which then
fails.

There is a fix, namely shorten the kernel 32bit DMA zone to 2GB, namely 
replace in arch/x86/include/asm.h the following
line:

#define MAX_DMA32_PFN ((2UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)

here the 4UL has been replaced by a 2UL, which does the indicated 
reduction of the 32bit DMA memory, and brings the
emu10k1 back to work. It has no other drawbacks, i.e. the machine is 
working with correspondingly patched kernels
for over a year by now.

The true fix would be to make the memory allocation of the kernel a bit 
more flexible than it is now.

Greetings,
    Thomas

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/183456

Title:
  Trying to load a sf2 file with asfxload returns "sfxload: no memory left" 

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to