免费注册 查看新帖 |

Chinaunix

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

[内存管理] kmalloc分配的内存使用cache了吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-05-08 12:51 |只看该作者 |倒序浏览
kmalloc分配出的内存使用cache了吗?
这里的cache是硬件上的cache。谢谢

论坛徽章:
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
2 [报告]
发表于 2013-05-08 13:10 来自手机 |只看该作者
肯定用,我觉得。

论坛徽章:
0
3 [报告]
发表于 2013-05-08 13:18 |只看该作者
code中有体现吗?

论坛徽章:
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
4 [报告]
发表于 2013-05-08 13:34 |只看该作者
本帖最后由 embeddedlwp 于 2013-05-08 13:35 编辑

回复 1# bluempire


你这个问题啊

kmalloc一定是从内存分配啊,但是如果之后cpu访问数据,肯定cache miss,就会把这部分加载到cpu cache里。

cat /proc/mtrr
reg00: base=0x0ffc00000 ( 4092MB), size=    4MB, count=1: write-protect
reg01: base=0x000000000 (    0MB), size= 2048MB, count=1: write-back
reg02: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg03: base=0x0bc000000 ( 3008MB), size=   64MB, count=1: uncachable
reg04: base=0x0bb000000 ( 2992MB), size=   16MB, count=1: uncachable
reg05: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back
reg06: base=0x200000000 ( 8192MB), size= 1024MB, count=1: write-back
reg07: base=0x23f000000 ( 9200MB), size=   16MB, count=1: uncachable
reg08: base=0x23e800000 ( 9192MB), size=    8MB, count=1: uncachable
reg09: base=0x23e600000 ( 9190MB), size=    2MB, count=1: uncachable


   

论坛徽章:
1
水瓶座
日期:2013-09-28 21:40:25
5 [报告]
发表于 2013-05-08 14:15 |只看该作者
本帖最后由 bensenq 于 2013-05-08 14:16 编辑

没有。是不是和slab中的cache搞混了?
回复 1# bluempire


   

论坛徽章:
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
6 [报告]
发表于 2013-05-08 14:21 来自手机 |只看该作者
cache和内存的关系跟内存和磁盘的关系一样啊!

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
7 [报告]
发表于 2013-05-08 14:52 |只看该作者
回复 1# bluempire
一般来说,如果访问的内存如果不与外设交互,都会走硬件cache的。有些DMA使用的内存,不走CPU cache.

   

论坛徽章:
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
8 [报告]
发表于 2013-05-08 14:55 |只看该作者
回复 7# 瀚海书香


得看mtrr,pat

   

论坛徽章:
6
金牛座
日期:2013-10-08 10:19:10技术图书徽章
日期:2013-10-14 16:24:09CU十二周年纪念徽章
日期:2013-10-24 15:41:34狮子座
日期:2013-11-24 19:26:19未羊
日期:2014-01-23 15:50:002015年亚洲杯之阿联酋
日期:2015-05-09 14:36:15
9 [报告]
发表于 2013-05-08 14:58 |只看该作者
回复 8# embeddedlwp
/proc/mtrr显示的结果应该与我的描述基本一致。

   

论坛徽章:
0
10 [报告]
发表于 2013-05-08 15:24 |只看该作者
谢谢楼上各位的回复。我的问题也有答案了:
1)这里的cache指的是硬件cache,不是slab内部使用的cache
2)之所以提出这个问题的原因:
我发现在我的bootloader里禁用了memory空间对应的cache。
但是,刚才我发现在kernel中又重新初始化了MMU,这样memory对应的cache又使能了。(之前没有注意到~)~-~
所以:kmalloc/vmalloc/kmap等等的函数,分配出的memory本身是使用cache的。
当然,DMA操作的内存除外。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP