vmalloc:人生逃不过的3个malloc之一

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vmalloc:人生逃不过的3个malloc之一相关的知识,希望对你有一定的参考价值。

参考技术A

用处:需要内核空间的虚拟地址是连续的物理块

**__vmalloc_node_flags => __vmalloc_node =>
__vmalloc_node_range(size, align, VMALLOC_START, VMALLOC_END,gfp_mask, prot, 0, node, caller); **

vmalloc的区间

以内核module区域结束地址为起点

ARM64中,起点为0xFFFF 0000 1000 0000,终点为0xFFFF 7DFF BFFF 0000,整个区域大小为129022GB

调用 va = find_vmap_lowest_match (size, align, vstart);

xxxx对不起有空再看,看着头大

终于返回了一个vm_struct结构体了,现在可以靠着他来申请真正的物理内存!

疑问:vm_struct和vmap_area是啥关系?

struct vmap_area 用于描述一段虚拟地址的区域,从结构体中 va_start/va_end 也能看出来。同时该结构体会通过 rb_node 挂在红黑树上,通过 list 挂在链表上。
struct vmap_area 中 vm 字段是 struct vm_struct 结构,用于管理虚拟地址和物理页之间的映射关系,可以将 struct vm_struct 构成一个链表,维护多段映射。

map_vm_area -> vmap_page_range (addr, end, prot, pages);

多级页表层层遍历....

vmap_page_range_noflush
vmap_p4d_range
vmap_pud_range
vmap_pmd_range
vmap_pte_range

玩命上了985,终究还是逃不过 996?

来源:开发者技术前线 责编: 可可
作者:可可(作者老婆).

GitHub有个叫996.ICU的项目突然火了,是什么项目?我们先看看。

这个就是短短一天star超过30k的项目,这个项目没任何代码 ,但是和我们就关系大了。996.ICU的意思是:工作 996,生病 ICU。
下面是一些持续更新的issues 5K+, star人数超过30K 太可怕了。

“996”工作制是指每天早 9 点上班晚上 9 点,每周工作 6 天。“996”工作制的周工作时间为最低 60 小时。

这一次程序员们太压抑了 终于爆发了

有赞996后,受不了员工可以离婚的逆天言论,真是互联网的一泡狗屎,去他娘的!

看看国外的开发者怎么看待996 ?

美媒:中国科技企业用人太狠 “996工作制”成常态

2月24日报道美媒称,在无声电影《摩登时代》里,电影大师卓别林扮演了一名因为拧螺栓拧得太过频繁而精神崩溃的工人。一些年轻的中国技术工人觉得自己正处于21世纪的“摩登时代”,要面对可怕的“996工作制”——每天从早9点干到晚9点,每周工作6天。

硅谷高管中国行感受:思维太单一,996式加班意义不大

硅谷高管访问团一行在讨论
“美国对中国的竞争优势可能不会持久,”Sinovation Ventures的首席执行官、谷歌中国前负责人李开复表示,“事实上,”他补充说,“美国人现在处于信息劣势。”
但中国的缺陷也是显而易见的。首先,所有员工都是中国人,而谷歌即使在创立之初,就有来自39个国家的员工,他们说着40多种语言。
“中国有点同质化,”Chan表示,“与硅谷相比,这里的视角过于单一。”
还有就是工作时间问题——高管们获悉了中国人的“996”工作制:从早上9点工作到晚上9点,每周6天。高管们不禁问到:如此累人的工作制有意义吗?

日本高管怕国内加班,逃回日本

日本是一个不怕企业加班的国家,他们大都10小时工作制,再来华为之前,日本高管称:我最不怕的就是加班,三个月后这个日本人跑了,走时说了一句:”太可怕了,你们加班“

“不加班程序员不是优秀的程序员了?”
面试时常问的:“你是否愿意加班?”
凌晨时分还有大把的程序员遍布在张江,虹桥,漕河泾,和五角场,一座座大楼早与黑夜融为一体,但只要一抬头就能看到日光灯把办公室照得格外清晰。在漕河泾某知名互联网公司大楼下,出租车一辆接着一辆,即使是在凌晨,他们也不愁拉不到生意。甚至在9.30左右打开滴滴叫车,都要排队几十个人。下雨的时候我很怕加班,因为打车很难,甚至一个小时都在等车,有的人会问“大城市这么可怕吗” 事实上就是如此。

最近,有读者反馈加班很多,几乎每天9.30以后才下班,之前我也很反感加班,现在我却被同化了,就好比不加班我会有愧疚感,我自己根本不知道这愧疚感来自哪里?

但在圈子内有很多案列,不加班被开除辞退的现象,虽然我并没有遇到过这种垃圾公司,但是这也反映了敲代码是中体力活,也是一种持久活。不加班肯定是不行的,这这辈子都不行,只有加班才能勉强拿点绩效,维持生活。
大家感慨 ”玩命进了985/211,终究还是逃不过996".

我还能继续写代码,但纯粹是因为兴趣

国外程序员发声:
在业余时间每天花几个小时写代码与在工作中每天花八个多小时写代码是不一样的。十年的代码生涯,几乎把我的身体掏空了。长时间写代码会诱发我的偏头痛,我的颈椎也开始出现问题。我尝试使用各种类型的桌子,进行各种饮食调节,锻炼,物理治疗、按摩……这些项目花费我不少的钱。但我默不作声,因为我害怕如果让别人知道了,我就保不住这份工作。

有人问我为什么不给自己充充电,然后找到“更好”的工作。我当然可以这么做,毕竟学习新技术对我来说小菜一碟。但到了这个时候,我似乎已经没有了那种热望。
外面的公司要找的是那些愿意长时间工作的人,他们真正想要的不是那些只是在周末花几个小时写点开源代码的人,而是那些下班回家之后还会花一整个晚上继续工作的人。

好在我已经通过开发者的工作攒够了足够多的钱,如果不幸遇上什么麻烦,起码还能让我生存下去。现在,我可以自由支配自己的一部分时间,几个小时用来写代码,几个小时用来写作,还有充足的时间与自己在乎的人一起度过。

除了软件开发之外,这个世界上还有很多行业要求长时间的工作。我梦想着这样的一个世界,每个人不需要花那么长时间在工作上。那个时候,我还能继续写代码,但纯粹是因为兴趣。

总结
无论是出于娱乐, 还是出于压抑反抗,这是一场,今年规模最大的反加班的行为艺术,也是一个全民参与的超级项目!

原文:https://mp.weixin.qq.com/s/bcvoo3zmS_YepDyq_7SBIQ

以上是关于vmalloc:人生逃不过的3个malloc之一的主要内容,如果未能解决你的问题,请参考以下文章

人生最终的逆境叫死亡,谁也逃不过

kmalloc/kzalloc/vmalloc/malloc和get_free_page的区别

内核空间内存申请函数kmalloc kzalloc vmalloc的区别

内核申请内存的方法

自己动手实现一个malloc内存分配器

传统的产业也逃不过数字化的力量