Re: allocation failed: out of vmalloc space - use vmalloc= to increase size.

H. Peter Anvin
2007-06-12T18:08:36Z

Daniel J Blueman wrote:
> On 12 Jun, 14:30, Jon Dufresne
> <jon.dufresne@infinitevideocorporation.com> wrote:
>> I am writing a linux kernel driver for a custom pci device. I am
>> developing against the stock fedora 6 kernel on an x86. This device has
>> 512 MB of IO memory reserved by BAR 3. Whenever I try to ioremap this
>> space I get the error:

You don't have a prayer mapping 512 MB at once on an x86-32 machine.
The kernel only has 1 GB of address space *total*. You either need to
map it in chunks or restrict yourself to 64-bit machines.

>> allocation failed: out of vmalloc space - use vmalloc=<size> to increase
>> size.
>>
>> I think I understand why this is happening. I obviously don't have
>> enough vmalloc space to map such a large chunk of memory. I have been
>> using Corbet's et el's "Linux Device Drivers", Love's "Linux Kernel
>> Development", and many websites as a guide in this development process
>> but have yet to come across information that will help me.
>>
>> I'm curious if there is a way around this issue. Or a better way of
>> handling it so that I can properly map the entire io memory space.

No chance.

> You can boot with kernel parameter vmalloc=384M or so. I have
> experienced problems with booting with other values, but YMMV.

The vmalloc= option conflicts with the booting protocol, so it's
basically a crapshoot if it's going to work or not, at least if you're
using an initrd, which pretty much everyone does hese days.

-hpa