新浪博客

关于CMA以及宣传的一些讨论

2014-11-12 16:57阅读:
@宋宝华Barry 老师,你在首先你对CMA的描述是有问题的,他作为movable的后备内存不假,但是他任何时候都是不能成为movable的,具体为什么呢?看我的PPT吧 http://vdisk.weibo.com/s/zhMkbFGKwTOmn 吧!需要先下载,显示会是白色,但是下载下来就能看到内容了,另外文字比较多,这和我做讲座的时候用的版本不同,这些文字是我现场用的讲稿,这样方便没到现场的人也能更好的吐槽我,让我得到更大的进步。对了,如果你在我回答问题前回答出这个问题,还有一个F码作为礼品呢!:)
http://21cnbao.blog.51cto.com/109393/898846/ 另外您那篇关于CMA的文章我也拜读过很多次,而且一直存在我的收藏夹中,我通过其了解了CMA不少的东西。文中这句“这个函数则会通过set_pageblock_migratetype(page, MIGRATE_CMA)将页设置为MIGRATE_CMA类型的:”。这里也是有点点小问题的,这里设置的是页块,一个不在BUDDY系统中的页,我觉得好像是不能设置页的类型的。另外页块在整个迁移系统中也是很重要的,还有那个函数也不是光设置页块类型那么简单,具体也可以看我的PPT。
我个人觉得讲CMA如果能以BUDDY作为开始点,才能比较清晰的让人了解CMA的前因后果,单只从其初始化,以及分配的过程,大部分人都会像我一样晕了吧?
抱歉在得到您对我的PPT的吐槽前就小小的吐槽了您一下,也希望您能认真的吐槽我,这样我也可以得到更好的提高。
另外我看您主要是通过发布的版本来了解CMA的动态,我也大概介绍一下LKML上这块的进展。 其实我也是最近才开始关注这里的发展,如果有疏漏,还请海涵。
首先,CMA在真正需要他的时候分不出去的问题基本算是共识了,Joonsoo Kim 有一套改进 https://lkml.org/lkml/2014/5/28/64 ,还有一个GCMA,当然也有我提的 CMA_AGGRESSIVE https://lk
ml.org/lkml/2014/10/15/623 。不过现在要走好好像并没你说的那么容易,这里有些我们的讨论 https://lkml.org/lkml/2014/10/29/446 ,水深坑大,慎入。
然后就是我在演讲的当天也提到了,如果CMA真的从BUDDY系统中分配出去,连续内存分配的时候可以还有不少BUG,我当时说是zone->lock粒度的问题,还被现场同学吐槽了,不过 Joonsoo Kim https://lkml.org/lkml/2014/10/31/69 这组快进去的PATCH修正了这些相关问题。对了,吐槽CMA如何不稳定的同学,散了吧,前面我说了,现有代码压根有BUG CMA都分不出去,哪能遇到分配中的问题?Joonsoo Kim修正这些BUG也是在打了他的改进PATCH后才能够复现的。
最后我来谈一下你们一直吐槽我们在推广盒子的时候介绍CMA的问题,我没感觉出这里的介绍有什么失妥当的,而且这里做宣传前领导也是和我沟通过的,如果我们空泛的写上一句,“有针对性的对内存进行优化”之类的,估计得到的吐槽会更少,因为压根让人找不到吐槽的方向。不过我们很有诚意的写上,我们用了CMA(你猜我们还用了什么?),而且是我们优化过(代码LKML上就有),让用户花钱买的每兆内存都能发挥他的作用,我想这也符合我们的口号“为发烧而生”。而不是软件搞不定就对用户说,加内存吧!这样的码农还有个毛用?加内存那是板农的事。祖师奶奶怎么教你们的?
就说这些吧,最后再做一下广告,我在CLK上做演讲的PPT http://vdisk.weibo.com/s/zhMkbFGKwTOmn,我的PATCH https://lkml.org/lkml/2014/10/15/623 。欢迎吐槽!

我的更多文章

下载客户端阅读体验更佳

APP专享