linux headerread 函数执行失败_新版Linux内核的内存管理函数vmalloc可带来更快的执行速度...

cb7ee813bfb76ae3618589947e7ebc24.gif嵌入式linux QQ交流群:175159209,欢迎爱好者加入交流技术问题!

据 phoronix 的报道,在 Linux Kernel 5.2 版本中,其用于内存管理的 vmalloc 函数具有更快的执行速度,特别是在嵌入式设备上。vmalloc 用于在虚拟地址空间中分配连续内存,合并了代码的 Andrew Morton 说道:

“新版本中 vmalloc 发生的改变为其带去了巨大的性能优势。”据了解,vmalloc 代码的主要变更集中在追踪用于分配的空闲块。 

现在,Linux 内核的机制是在拥堵的列表迭代中完成新 VA 区域的分配,直到在两个拥堵的区域之间找到合适的空隙。因此,每次新分配都会导致列表增长。而由于长列表和不同的许可参数,分配在嵌入式设备上可能需要很长时间(毫秒)。 
最新提交的补丁将 vmalloc 内存布局组织到 VMALLOC_START-VMALLOC_END 范围的空闲区域中。它使用一个红黑树,以保持这些块按其偏移量进行排序,以及为了增加的地址而与链表一起保持一定的空闲空间。

根据测试,使用了 Uladzislau Rezki 的补丁并执行同样的行为,再与 Linux Kernel 5.1 及之前的版本进行对比,调用 vmalloc() 可节省多达 67% 的时间 —— 至少根据开发者在 QEMU 上进行的测试显示如是。

bccbceb3526c43db7c9a97052fad93b1.png

嵌入式Linux中文站

最专业的中文嵌入式Linux网站,8年磨剑,注册用户数万人

分享 嵌入式 & Linux 技术干货、教程、资讯、高薪职位

订阅点击标题下方“嵌入式Linux中文站”

分享点击右上角分享按钮

投稿admin@embeddedlinux.org.cn

交流QQ群:175159209

737edd023093024d74bc86e587a2cb98.gif

       点击下方“ 阅读原文 ”查看更多 f24eb3d81edcbd72ccfa99fa676a8a8f.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值