当前位置: 技术问答>linux和unix
内核最大可用内存是多少,怎样扩大可用内存?
来源: 互联网 发布时间:2016-09-12
本文导语: 如题。 | 1.分配连续存储区可使用vmalloc/vfree,函数对分配多少内存没有限制,但是,一般不会分配超过物理内存大小的空间。 2.ioremap同样可以分配连续的大内存,但是,这个函数分配的内存...
如题。
|
1.分配连续存储区可使用vmalloc/vfree,函数对分配多少内存没有限制,但是,一般不会分配超过物理内存大小的空间。
2.ioremap同样可以分配连续的大内存,但是,这个函数分配的内存不能直接访问,必须使用readb等io函数进行访问
3.kmalloc( )最大到128KB(2.4.2);
4.unsigned long __get_free_pages(int flags, unsigned long order),分配2的order次幂个页,2.0下order最大取5,即32个页,以后版本最大可取9,即512个页,不过对连续内存要求越多,分配越容易失败;
5.Boot-Time 分配void *alloc_bootmem(unsigned long size);void *alloc_bootmem_low(unsigned long size);void *alloc_bootmem_pages(unsigned long size);void *alloc_bootmem_low_pages(unsigned long size);
2.ioremap同样可以分配连续的大内存,但是,这个函数分配的内存不能直接访问,必须使用readb等io函数进行访问
3.kmalloc( )最大到128KB(2.4.2);
4.unsigned long __get_free_pages(int flags, unsigned long order),分配2的order次幂个页,2.0下order最大取5,即32个页,以后版本最大可取9,即512个页,不过对连续内存要求越多,分配越容易失败;
5.Boot-Time 分配void *alloc_bootmem(unsigned long size);void *alloc_bootmem_low(unsigned long size);void *alloc_bootmem_pages(unsigned long size);void *alloc_bootmem_low_pages(unsigned long size);
|
好像通配是1G...应该有宏定义可以加大...
|
不同的体系架构不同,有宏可以改
|