免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1400 | 回复: 0
打印 上一主题 下一主题

大块物理地址连续的内存分配 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-25 10:53 |只看该作者 |倒序浏览

前言
    工作中,我们经常能够遇到一些对内存有特殊要求的硬件,有些是其本身的设计要求所至,而另一些则是从系统性能考虑(如不能支持Scatter/gather DMA ),两种情况下都必须为其driver 分配大块的物理地址连续内存块。更槽糕的是,系统连续运行时间越长,大块物理地址连续的内存块分配到的可能性就越低。大多数情况下(内存泄露除外),你会发现系统的剩余内存( free 或cat /proc/meminfo )足够大却依然无法分配到,很显然,内存碎片( memory fragmentation )出现了。在uClinux系统中,由于没有VM的存在,问题更加突出。当你播放一个H.264 或者WMV HD(1920x1080p) 的视频时,甚至播放一个WMA Pro,系统都有可能“Out of memory",根本原因还是系统此时无法为video decode 或audio decoder 分配一个大块的物理地址连续内存。

全文概要
   本文首先简单介绍了Linux kernel 中常用的几种内存分配方式(kmalloc, vmalloc, alloc_page类函数),从能分配的上限和分到的可能性来看是否能够满足需求;接着 介绍了两个具体的实际解决方案:
1. 预留内存(mem=)
2. bigphysarea kernel patch.

附件为全文pdf.

文件:
bigphysarea.pdf
大小:
280KB
下载:
下载


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/101776/showart_2006928.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP