Question
Allocating more than 4 MB of pinned contiguous memory in the Linux Kernel
For some interaction with a PCI device that is being built, we'd like to create large contiguous pieces of memory that the board can access. As it stands now, the largest piece of memory that I've been able to allocate is 4 megabytes in size. I'm wondering if there are any methods to create larger regions.
I do know that I can use the boot option mem=
to do this, but for numa reasons, I'd rather not go this route. If, on the other hand, someone knew a way to do this, but distribute it over numa nodes, that would be fine.
As I said initially, I'm limited to 4 Megabytes currently. Allocations are currently done by __alloc_pages
, which is limited by MAX_ORDER
. MAX_ORDER
is a compile-time constant, and I'm also concerned that editing it could have affects elsewhere.
Thanks.