日期:2014-05-16  浏览次数:20973 次

__alloc_pages申请内存失败
问题现象:使用__alloc_pages申请128k大小内存时成功,申请3M大小时失败。这时在uboot里给linux操作系统分配的空间是90M。当给linux操作系统分配113M时,__alloc_pages的申请3M也能成功。

请问大家,问题1:为什么会出现这种情况?
  问题2:我如何能够不增大linux操作系统总的内存,能够使得__alloc_pages申请3M也成功。

------解决方案--------------------
返回错误代码是什么呢?
------解决方案--------------------
呜...不知道实际环境是怎样的,这个还不如把__alloc_pages的代码找出来,写个小程序调一下

我个人猜想,大概是系统资源的不足,以及程序优先级的问题。
1.以LZ程序的优先级,已经没有更多内存可供分配,在如此小的总空间内,3M是很大的资源了,所以系统傲娇了..
2.既不增大总空间,又想获得3M,提高优先级,压榨其他进程,或者崩溃...


------解决方案--------------------
去看alloc_page的源代码吧,看看什么条件下会失败