当前位置:  技术问答>linux和unix

vmalloc用法???

    来源: 互联网  发布时间:2016-11-16

    本文导语:  高端物理地址的分配采用vmalloc/vfree这组函数进行,什么是高端物理内存呢? 我们知道Linux给内核预留了一部分虚拟地址空间,这部分虚拟地址如果能全部直接映射到物理地址 空间就不存在高端内存。如果这部分内存...

高端物理地址的分配采用vmalloc/vfree这组函数进行,什么是高端物理内存呢?
我们知道Linux给内核预留了一部分虚拟地址空间,这部分虚拟地址如果能全部直接映射到物理地址
空间就不存在高端内存。如果这部分内存有一部分不能直接映射到地址空间,那么这部分虚拟地址
空间称为高端内存。因此,高端内存是虚拟地址空间中的概念。举个例子:如果你的物理内存为512M
,那么就不存在高端内存的分配,如果你的物理地址为2G,那么有1G+128M(预留给VMALLOC区)
是属于高端内存的。高端内存的分配即便是逻辑上连续,也不要求物理上是连续的.


我的问题就是,如果我的物理地址是512M,那么是不是没法用vmalloc???
还有就是,我看ldd3上说:当驱动需要真正的物理地址时(像外设用于驱动系统总线的DMA地址),就不能用vmalloc了,
问什么??怎么解释??
使用vmaaloc函数的正确场合是在分配一大块连续的、只在软件中存在的、用于缓冲的内存区域的时候。
只在软件中存在???
各位大侠解疑!!!!

|
用户空间,分为常规内存和高端内存。DMA用常规内存,映射到常规内存的是较小的、连续的。而高端内存则不一定连续,对于网络等做缓冲还可以。

|
512M的物理地址,仍可用vmalloc!

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于vmalloc


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3