一直以为只在高端分配,后来想想是不太可能的。在虚拟机做个实验之分配512M内存 vmalloc依然分配成功。
仔细阅读代码发现:
& ) &&
(*, ))
& ))
{;
& )
= (*)->;
& )
= (*)->;
= (*)->;
(*, , ,
, ))
||
(*, , ))
= (, *, , );
)
{ 891 break;
892 }
893 } while (*(++) != );
*z是指向zone的指针 ++z 由于struct zone **z,所以指针增加一个struct zone *大小 指向下一个zone
既由HIGHMEM 指向了NORMAL 然后while 一切清晰起来。。
阅读(1892) | 评论(0) | 转发(0) |