历史上的今天
返回首页

历史上的今天

今天是:2025年02月25日(星期二)

正在发生

2020年02月25日 | ARMv8 内存管理架构.学习笔记

2020-02-25 来源:eefocus

操作系统

Disk <=> Tape

用户

 

 

数据结构(kernel3.10)

 

next

所有的vm_struct子区域组成一个vmlist链表,next指针指向下一个vm_struct 节点地址

addr

vmalloc() 最终在内核空间申请一个vm_struct 内存子区域,addr指向该内存子区域首地址

size

表示该vm_struct子区域的大小

flags

表示该非连续内存区的类型标记

pages

指针数组成员是struct page*类型指针,每个成员都关联一个映射到该虚拟内存区的物理页框

nr_pages

指针数组pages中page结构的总数

phys_addr

通常为0,当使用ioremap()映射一个硬件设备的物理内存时才填充此字段

caller

返回地址

 

4.2 基本流程

。size 修正为PAGE_SIZE的整数倍,保证对齐

。在vmalloc内存范围内查找一块合适的虚拟地址子内存空间,存储到vm_struct结构中.

。为申请到的vm_struct 子内存空间分配不连续的物理页框(Physical Frame)

。建立连续的vm_struct子内存空间到非连续的物理页框(Physical Frame)之间的映射.

 

4.3 代码实现分析

• vmallo()内部封装__vmalloc_node_range函数

 

size

需要申请子内存的大小,通过vmalloc()传过来

align

表示将所申请的内存区分为几个部分,1表示size大小的虚拟内存区作为一个整体

start

vmalloc区域范围从 VMALLOC_START 开始

end

vmalloc区域范围到 VMALLOC_END 结束

gfp_mask

页面分配标志,GFP_KERNEL | __GFP_HIGHMEM 表示将从内核高端内存区分配内存空间

prot 

描述当前页的保护标志

node 

表示在哪个节点上(struct pg_data_t)为这段子内存区分配空间,-1表示在当前节点分配

caller

返回地址

 

• __vmalloc_node_range函数分析

LINE 9

修正获取内存的size,PAGE_ALIGN 将size的大小修改成PAGE_SIZE的整数倍,假设要申请1KB的内存区,那么实际上分配的是PAGE_SIZE(4KB)大小 的区域,然后进行size合法性检查,若不合法则返回NULL,申请内存失败

推荐阅读

史海拾趣

Cotco公司的发展小趣事

随着产品线的不断丰富和市场需求的持续增长,Cotco公司开始加大市场拓展力度。公司积极参加国内外各类电子行业展览和交流活动,与潜在客户和合作伙伴建立了广泛的联系。同时,Cotco也注重品牌建设,通过赞助行业活动、开展公益事业等方式提升品牌知名度和美誉度。经过几年的努力,Cotco已经成为电子行业内一个响当当的名字。

ATO SOLUTION公司的发展小趣事

在电子行业的激烈竞争中,ATO SOLUTION公司通过一项创新性的技术突破,成功引领了市场的新潮流。该公司研发出了一款高效能的半导体芯片,极大地提升了电子设备的性能和能效比。这一技术的问世,迅速获得了行业内外的广泛关注和认可,为公司赢得了大量合作伙伴和客户,奠定了市场领先地位。

EiKO Global LLC公司的发展小趣事

为了进一步扩大市场份额,EiKO开始实施全球化战略。公司在美国、加拿大、欧洲和亚太地区设立了办事处,以便更好地服务当地客户。同时,EiKO还积极参加国际照明展会和论坛,与全球同行交流经验和技术,不断提升自身的竞争力。

在全球化布局的过程中,EiKO也面临着各种挑战和困难。然而,公司始终坚持以客户为中心的服务理念,通过不断优化产品和服务质量,赢得了越来越多客户的信赖和支持。

Franel Corp公司的发展小趣事

作为一家负责任的企业,法勒公司始终将环保和可持续发展理念贯穿于其经营活动的全过程。在中国市场,法勒积极推广绿色、低碳的产品和解决方案,助力客户实现节能减排和环境保护目标。同时,法勒还注重自身运营过程中的环保管理,通过采用先进的生产技术和设备,减少资源消耗和废弃物排放,为构建绿色、可持续的生态环境贡献自己的力量。

请注意,以上故事是基于法勒公司及其相关行业背景的虚构创作,旨在展示一个电子行业中类似企业在发展过程中的可能经历和策略。

BREL International Components公司的发展小趣事

BREL International Components公司自创立之初,就致力于电子元件的技术创新。在早期阶段,公司研发出一款高性能的集成电路,其稳定性和耐用性远超市场同类产品。这一创新为BREL赢得了众多客户的青睐,公司迅速在电子元件市场占据了一席之地。随着技术的不断进步,BREL持续推出创新产品,如低功耗的芯片和高速传输的连接器,进一步巩固了其在行业内的领先地位。

Eink公司的发展小趣事
随着电子纸技术的不断发展,其应用领域也逐渐拓宽。在2002年3月的东京国际书展上,第一张彩色电子纸的出现引起了轰动。此后,电子纸开始被广泛应用于电子书阅读器、电子标签、公交站牌等领域。E-Ink公司作为电子纸技术的领军企业,推动了整个电子纸行业的发展。

问答坊 | AI 解惑

电量隔离传感器的工作原理和数字化技术

电量隔离传感器变送器是针对工程中的电量检测(监测),提高系统的整体抗干扰能力,而研制开发的一种小体积、高性能的电量测试部件(产品)。 电量隔离传感器变送器可以对现场的大电流、高电压、功率、频率、相角、电度等电参量进行隔离测量和变换,也 ...…

查看全部问答>

请教:6410 wince5.0 BSP移植到wince6.0

     请问各位老大有谁做过6410 wince5.0 BSP的移植没?应该如何着手呢?本人菜鸟中的菜鸟,帮帮忙,不胜感激。。。      邮箱:949770385@qq.com…

查看全部问答>

【正版】Windows Embedded SP2

Windows Embedded Standard SP2 正版全套9CD 版本 软件功能及介绍就不多说了,可以去微软官方网站查看, (http://www.microsoft.com/windowsembedded/zh-tw/about/what.mspx) 产品包括9张CD光盘和安装ID以及PID,是市场上 最全的正版产品。 以下是9 ...…

查看全部问答>

标题: 学3G,拿高薪,来渥瑞达!

渥瑞达专注于培养薪酬高、市场紧缺的高端3G嵌入式软件工程师。 欢迎大家与我们的703期学员交流!这期学员已于07年7月29日毕业。 学员就业薪水都在6000元/月以上 您还可以加入渥瑞达学员的QQ群与学员面对面交流 渥瑞达学员咨询交流的QQ群号 ...…

查看全部问答>

急!!!求GAL的8分频设计 (在线等)

   我想用GAl实现信号的八分频,不知道用ABEL怎么编写程序!!!想请各位帮忙!!!不胜感激…

查看全部问答>

WinCE 18bpp LCD驱动的问题

现在有一块18bpp(RGB666)的TFT屏,想在Windows Mobile6上点起来。可是发现Windows Mobile只支持16bpp和24bpp,并不支持18bpp。我应该怎么样做呢?十分感谢…

查看全部问答>

内部FAE培训资料【3】GPIO模块介绍及应用_讲稿

内部FAE培训资料【3】GPIO模块介绍及应用_讲稿…

查看全部问答>

上海招聘:FPGA设计师

上海博达数据通信有限公司招聘FPGA设计工程师和电源开发工程师,有兴趣的朋友请发简历到:yangrong@bdcom.com.cn,或者在QQ:277358331上留下联系方式,我会及时回电!谢谢各位的关注!   高级FPGA设计师  工作职责: 负责数据通信 ...…

查看全部问答>

求应用设计

各位大虾:   我有如下两个需求,望有能力的大虾赐教:   1、在一较大的容器内装有水,再放置一比较小的玻璃容器,玻璃容器内装有有机溶剂,有机溶剂液面会逐渐下降,能否有那种技术能监测到有机溶剂的液面下降? 2、需要检测空气中的 ...…

查看全部问答>

NXp 1pc1114 使用什么工具ISP下载

RT,第一次玩NXP 的M0,问问大家。 …

查看全部问答>