免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chishanmingshen
打印 上一主题 下一主题

[内存管理] 关于DMA zone的疑问 [复制链接]

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
11 [报告]
发表于 2013-04-22 07:51 |只看该作者
本帖最后由 embeddedlwp 于 2013-04-22 08:01 编辑

回复 9# chishanmingshen


根据dmesg的打印和config PHYSICAL_START可以看出内核镜像的加载地址已经不是那个了吧,你看得是ULK3那样说的,估计已经out-of-date了。

HPA done this.

http://lists.infradead.org/pipermail/kexec/2009-May/003291.html


   

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
12 [报告]
发表于 2013-04-22 08:24 |只看该作者
回复 11# embeddedlwp

如果这样的话,如何保证在实模式切换时前8M的恒等映射?


   

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
13 [报告]
发表于 2013-04-22 08:31 |只看该作者
回复 12# chishanmingshen


你说的这个恒等映射我以前在2.6.11的时候看过,在最新的代码中没找到。


   

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2013-04-22 08:52 |只看该作者
本帖最后由 chishanmingshen 于 2013-04-22 09:00 编辑

回复 13# embeddedlwp

是啊,这块貌似都改了。。。

from 3.7
static void __init pagetable_init(void)
{
        pgd_t *pgd_base = swapper_pg_dir;

        permanent_kmaps_init(pgd_base);
}

在初始化pagetable时仅仅考虑了kmap,都没涉及低端的,奇怪啊。。。。



那以前的版本是咋处理这种情况的:
3G到3G+16M是dma zone,3G到3G+8M是映像。




   

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
15 [报告]
发表于 2013-04-22 09:00 |只看该作者
本帖最后由 embeddedlwp 于 2013-04-22 09:01 编辑

回复 14# chishanmingshen


涉及了啊,看kernel_physical_mapping_init.


老版本不需要看的。


   

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
16 [报告]
发表于 2013-04-22 09:20 |只看该作者
回复 15# embeddedlwp

好吧,那我们还是看dma zone和image这个问题吧。

在新版本上,切换模式时,如何保证恒等映射的问题,难道有重定位image的过程?

新版本我已经看不懂了,当初对着看的ulk3竟然已经是老版本了。。。

   

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
17 [报告]
发表于 2013-04-22 14:47 |只看该作者
本帖最后由 chishanmingshen 于 2013-04-22 14:48 编辑

明白了,切换时映像已经是在3G+16M开始的地方了。

论坛徽章:
16
2015亚冠之吉达阿赫利
日期:2015-08-17 11:21:462015年迎新春徽章
日期:2015-03-04 09:58:11酉鸡
日期:2014-12-07 09:06:19水瓶座
日期:2014-11-04 14:23:29天秤座
日期:2014-03-02 08:57:52双鱼座
日期:2014-02-22 13:07:56午马
日期:2014-02-14 11:08:18双鱼座
日期:2014-02-13 11:09:37卯兔
日期:2014-02-06 15:10:34子鼠
日期:2014-01-20 14:48:19戌狗
日期:2013-12-19 09:37:46射手座
日期:2013-12-19 09:33:47
18 [报告]
发表于 2013-04-22 15:02 |只看该作者
回复 17# chishanmingshen


切换前在哪里,切换后在哪里,could you point out the codes to me?


   

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
19 [报告]
发表于 2013-04-22 15:19 |只看该作者
回复 18# embeddedlwp

x86/boot/compressed/head_32.S中的startup_32 会将内存中的被压缩内核解压缩,然后跳转到x86/kernel/head_32.S中的startup_32

在这段代码(这2个startup_32都在16M处,而不是我一直认为的1M处)中,内核会创建一个临时内核页表(此处应该有恒等映射,我还没仔细看),并开启分页机制。

我目前只要知道在临时内核页表时,映像已经在16M处就ok了。


   

论坛徽章:
0
20 [报告]
发表于 2013-04-22 15:23 |只看该作者
我看过了你们的对话,没看的仔细,但注意到楼主始终都在问,dma zone的区域是不是3G+16M?按我的理解,楼主理解的是有些偏差的,内核代码中有gcc c语言的__init __exit等属性标志的,会在初始化内核之后内存释放,但其他内核代码不会释放,zone_dma区域怎么可能包含内核呢?内核的开始地址是3G+1M,从内核结束之后的8M才开始映射DMA,这个限制是针对x86的,比如现在很多的cpu---arm等都是全地址dma的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP