个人简介笨叔叔:沪上紫竹某小公司的小FAE.
工作之余写点Linux小段子.
2017年不小心出版了《奔跑吧Linux内核》一书.
Linux4.
x内核最新特性简介笨叔叔2017.
12AgendaLinux内核开发流程简介内存管理最新特性简介内存管理总览HMM特性页面回收基于node节点OOMKiller改进swap功能改进进程管理最新特性简介EAS调度器内核学习方法建议Linux内核开发模式现在最新的版本是Linux4.
14(2017.
12)由Linux内核社区开发主导总的maintainer是:LinusTorvalds每个子系统都有maintainer每2~3个月发布一个新版本创新的驱动力来源于各个公司:红帽,Suse,Intel,IMB,谷歌.
.
.
1.
平均60~70发布一个新版本2.
最新的Linux4.
13内核代码已经超过2千万行代码内存管理总览用户进程用户进程用户进程…用户空间malloc/mmap/mlock/madvise/mremap/…sys_madvisesys_mmapsys_brksys_.
.
.
vma管理缺页中断匿名页面pagecache页面回收slab伙伴系统(页面分配器)页表管理(内核页表和进程页表)MMUTLB物理内存cache反向映射KSMHugePage页迁移内存规整内核空间硬件层VMA4G3G01Gmmap空间用户空间物理内存堆空间代码段数据段VMApagepagepagepage进程页表进程task_structmm_structVMA内核空间…vma管理mmappgdmm…物理页面管理ZONEZONEZONEZONE管理高端映射线性映射mem_map[]pagemmvaddressvmaptepaddressfpnzonepgdatamem_map[]①②③④⑤⑥⑦⑧⑨异构内存管理传统访问方式GPU显存主存CPUGPU进程地址空间映射的显存malloc/mmap显卡驱动来做映射IOCTL+mmap被分离的进程地址空间(splitaddressspace)CPU通过malloc/mmap分配的常规的内存GPU通过显卡驱动管理和映射的进程地址空间这两个地址空间是分离的,访问需要相互来回拷贝用户空间内核空间相互拷贝:简单的数据类型比如数组、image等没有问题,但是复杂的数据模型就有问题了,比如链表、树等传统访问方式小例子mul_mat_on_gpu(float*r,float*a,float*b,unsignedm){gpu_buffer_tgpu_r,gpu_a,gpu_b;gpu_r=gpu_alloc(m*m*sizeof(float));gpu_a=gpu_alloc(m*m*sizeof(float));gpu_b=gpu_alloc(m*m*sizeof(float));gpu_copy_to(gpu_a,a,m*m*sizeof(float));gpu_copy_to(gpu_b,b,m*m*sizeof(float));gpu_mul_mat(gpu_r,gpu_a,gpu_b,m);gpu_copy_from(gpu_r,r,m*m*sizeof(float));}CPU分配的buffer,属于常规内存,比如通过malloc分配的.
这些数据作为input分配GPUbuffer,通过GPU驱动来分配的把CPU分配的buffer拷贝到GPUbuffer里在GPU中进行计算把GPU的结果拷贝回CPU的bufferHMM(heterogeneousMemoryManagement)建立一个统一的进程地址空间(shareaddressspace)HMMmirror镜像功能:CPU和GPU都可以同时访问这个统一的进程地址空间(虚拟地址),都能同时访问到相同的物理内存.
页面迁移:在一个进程里可以透明地使用device的内存.
已经合并到Linux4.
14内核中支持HMM的开源NV的显卡驱动nouveau正在开发中支持HMM的应用程序例子:mul_mat_on_gpu(float*r,float*a,float*b,unsignedm){gpu_mul_mat(r,a,b,m);}HMM来提供了一个统一的进程地址空间,用户编程变得简洁很多CPU进程地址空间CPU页表GPUGPU页表用户空间内核空间虚拟地址VA物理地址PACPU页表:VA->PAmirror:拷贝CPU页表到GPU页表,GPU也可以访问这个虚拟地址VA和对应的物理地址PA那么GPU可以访问这个PA①②③HMM的镜像功能HMM镜像功能保证:CPU和GPU访问同一个虚拟地址时都能指向相同的物理地址CPU进程地址空间CPU页表GPUGPU页表用户空间内核空间虚拟地址VA物理地址PACPU页表:VA->PAmirror:拷贝CPU页表到GPU页表,GPU也可以访问这个虚拟地址VA和对应的物理地址PA那么GPU可以访问这个PA①②③HMM的迁移功能CPU进程地址空间CPU页表GPUGPU页表用户空间内核空间虚拟地址VA物理地址PACPU页表:1.
支持CCIX协议,CPU页表也指向这个显存的物理地址GA2.
如不支持CCIX协议,CPU页表填充一个无效的特殊的页表项GPU的页表指向这个显存中的物理地址GA显卡驱动可以迁移这个PA的内容到GPU显存GA里,这样可以利用显存的高带宽如果支持CCIX协议,那么CPU和GPU的页表都能同时指向这个GA如果不支持CCIX协议,那么CPU的页表项要填充一个无效的特殊的页表项,当CPU访问这个虚拟地址时候,会触发一个缺页中断,然后把GA的内容迁移回主存⑥⑤④HMM的迁移功能显存的物理地址GA基于node节点的页面回收机制原来的页面回收机制都是基于ZONE(内存管理区域)在32位系统里,内核地址空间有限,所以高端内存分在了ZONE_HIGHMEM同一个node里不同的ZONE存在不同的页面老化速度(pageagespeed)不同的zone的页面扫描的速度和覆盖率不一致zone里的LRU链表扫描覆盖率也不一致页面回收内核线程kswapd和页面分配器之间复杂的逻辑关系,社区里增加了很多诡异的patchLinux4.
8里已经支持基于node节点的页面回收机制OOMKiller改进OOM检测机制Linux4.
7合并的新机制.
在直接回收机制分配内存失败时通常会直接调用OOM,有点鲁莽新机制,多了一下检测和尝试OOM收割机OOMKiller有时候不能回收进程的内存新机制:在杀死进程之前,先收割进程的匿名页面swap功能改进提高页面回收效率:优化LRU算法和页面回收机制优化SWAP性能随着SSD的普及,swap的性能可以随着优化解决思路:细化锁,减少锁的争用细化:swap_info_struct->spinlock细化:保护address_space的一个锁进程管理改进现有调度器的缺点现有的SMP调度器不支持大小核架构调度器和CPUfreq以及CPUidle等动态调频调压的驱动模块脱节没有考虑功耗场景PELT(Pre-entityLoadTracking)负载计算方法会导致负载反应比较迟钝,不太适应手机场景高通骁龙820处理器架构EAS调度器EAS(EnergyAwarenessScheduling)绿色节能调度器设计目标:保证系统性能的前提下尽可能减低功耗统一调度器、CPUfreq和CPUidle核心实现WALT(WindowAssistedLoadTracking)算法可量化的能效模型可量化的计算能力复用Linux内核的CPU调度域模型新增的CPUfrequencygovernmentEAS调度器架构图Linux内核学习方法介绍内核学习常见的疑惑内核代码太庞大,Linux4.
x内核代码超过了2000万行内核更新速度太快内核核心设计经常变化和优化缺乏最新的内核设计资料和文档市面上大部分Linux内核书籍停留在Linux2.
4和Linux2.
6内核笨式吊打法–带着问题去阅读内核代码深挖实际项目上遇到的问题阅读代码产生的疑问面试或者微信论坛上讨论的问题《奔跑吧Linux内核》中奔跑卷以及每一章的思考题可以从一个简单的驱动开始,比如简单的字符设备驱动"Qemu+gdb+eclipse+O0"调试跟踪内核选择感兴趣的内核模块进行调试或者修改动手实践数据结构关系图函数调用关系图归纳总结兴趣兴趣兴趣Linux内核学习资料推荐
易探云服务器怎么样?易探云是国内一家云计算服务商家,致力香港云服务器、美国云服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。目前,易探云推出的国内云服务器优惠活动,国内云服务器2核2G5M云服务器低至330元/年起;成都4核8G/200G硬盘/15M带宽,仅1888元/3年起!易探云便宜vps服务器配置推荐:易探云vps云主机,入门型云...
上次部落分享过VirMach提供的End of Life Plans系列的VPS主机,最近他们又发布了DEDICATED MIGRATION SPECIALS产品,并提供6.5-7.5折优惠码,优惠后最低每月27.3美元起。同样的这些机器现在订购,将在2021年9月30日至2022年4月30日之间迁移,目前这些等待迁移机器可以在洛杉矶、达拉斯、亚特兰大、纽约、芝加哥等5个地区机房开设,未来迁移的时...
horain怎么样?horain cloud是一家2019年成立的国人主机商家,隶属于北京辰帆科技有限公司,horain持有增值电信业务经营许可证(B1-20203595),与中国电信天翼云、腾讯云、华为云、UCloud、AWS等签署渠道合作协议,主要提企业和个人提供云服务器,目前商家推出了几款特价物理机,都是在内地,性价比不错,其中有目前性能比较强悍的AMD+NVMe系列。点击进入:horain...
什么是32位系统为你推荐
今日油条油条每周最多能吃多少haole018.comse.haole004.com为什么手机不能放?www.haole012.com012qq.com真的假的sss17.com为什么GAO17.COM网站打不开了www.7788k.comwww.6601txq.com.有没有这个网站鹤城勿扰黑龙江省的那个 城市是被叫做鹤城?彪言彪语很多的话:( )言( )语 豪迈雄壮:( )言( )语 含有讽刺意味的风凉话:( )言( )语xyq.cbg.163.com这俩号哪个号值得买 价钱合适吗?多少合适!再续前缘区的http://xyq.cbg.163.com/cgi-bin/equipquery.py?server_id=149&equip_id=404113&act=buy_show_equip_infohttp://xyq.cb采采风荷描写古代女子采荷或采莲时的优美句子或段落 要原创的 不要古人的诗词诗句 小说里用的www.finnciti.comFINNCITI学习资料在哪里?
vps是什么 北京vps 中文域名申请 n点虚拟主机管理系统 免费申请域名和空间 asp.net主机 oneasiahost l5639 国外空间服务商 外国空间 正版win8.1升级win10 php探针 刀片服务器的优势 支付宝扫码领红包 购买国外空间 电信托管 免费邮件服务器 空间登录首页 海外空间 架设邮件服务器 更多