PDA

View Full Version : malloc fails when X is running with nvidia drivers


Mikey
05-20-03, 02:05 PM
Hi,

i'm using the 4363 Driver. It works great except when X is running I expierience strange problems:

1) I've got a bootsplash Screen running. When i switch to console, via. ALT+CTRL+1 then the message "Not enough memory for splash Screen" is displayed. The corresponding source shows that this message is displayed after a vmalloc failure.

Well, this wouldn't be much a problem but here comes

2) I've got a Philips webcam using the pwc module. When I try to cat from /dev/video0 everything works great as long as X is not running. When X is running I get the message could not allocate memory.
Doh but a webcam isn't that useful when running in console mode, is it?

When I use another X Driver, eg the nv driver this problems do NOT appear.
I also need to mention that my box is equipped with 1GB of memory. When running ksysguard on X, it displays that i actually got ~620 MB of free RAM.

My System Config:

* Geforce 3 Ti200
* Athlon XP 1900+
* Epox 8KHA+
* Debian SID
* Video BIOS: 03.20.00.18.f1

Greetings Mike

bwkaz
05-20-03, 04:45 PM
If you have 1GB or more of memory, it is recommended to turn on CONFIG_HIGHMEM_4GB (or _64GB if you have an amount of memory approaching 4GB, but you don't).

Do you know how your kernel was configured? A lot of distros put a config file in /boot, so check around in there. If you can find something that looks applicable, open it up and look for the CONFIG_HIGHMEM options.

If you have a gig of RAM and you don't enable this, the vmalloc failing problem isn't because there's no RAM left, but because there's nowhere to map it into the kernel's address space.

Mikey
05-20-03, 11:35 PM
well I have a self-compiled Kernel and this option is already set to 4GB.. But a graphics driver the other way should not use 960 MB either ;)

bwkaz
05-21-03, 04:55 PM
It's not using 960MB of memory.

It's likely trying to map something other than RAM into the kernel's 1GB of address space (the kernel gets the top 1GB of space in a non-highmem setup, which it maps as much RAM as possible into), like video RAM. It's failing, because system RAM is taking up 960MB of the 1024MB in that top gigabyte.

Try enabling HIGHMEM_64GB maybe?

Mikey
05-22-03, 02:47 AM
hmm didn't work either, my system completly refused to boot after i did that change :angel2:

bwkaz
05-22-03, 05:46 PM
What did it do?

Mikey
05-26-03, 09:46 AM
ok my fault forgot to recompile the modules as well -> they refused to load..

anyway know have a 64GB kernel running but still the same error messages..

bwkaz
05-27-03, 05:51 PM
Oh, so it booted, just X didn't load.

I'm not sure what else it could be, though... :(

According to the Linux VM guide I happened across the other day (for those interested: it's here (http://www.csn.ul.ie/~mel/projects/vm/guide/html/understand/understand-html.html)), the vmalloc call is used to allocate an area that's nonlinear in physical address space, but that is linear in virtual address space. Hmm... I don't think that helps much, unfortunately...

Mikey
06-28-03, 07:51 AM
for the case that someone else got this problem, kernel 2.4.21 solved it for me..