追思心中璀璨的明星:杰出内核开发者李少华

 

640?wx_fmt=png

 

640?wx_fmt=png

我敬佩的兄弟李少华,最杰出的国人Linux内核开发者之一,在操蛋的2018年离开了咱们。linux

2018年最后一天,今天在商场溜娃,突然看到少华妻子的朋友圈提到李少华于12月28日离开了咱们。我知道少华前阵子身体很差但有好转,这心痛的消息来得太忽然,眼泪一下就出来了。家人也发现了我突然情绪低沉,我忍不住眼泪颤抖的说“少华走了”。git

李少华是咱们这一辈Linux内核开发者之中的杰出表明,应该说是目前华人圈最优秀和最重要的Linux内核开发者之一,他除了是内核子系统MD(软raid)的维护者以外,在块设备层,I/O调度器,NVMe,内存管理,电源管理等领域都作出了很是重要的工做。他的代码和对内核的改进,融合在整个内核在IO和存储站的方方面面,真的是经过很具体的工做,贡献了正能量,让这世界变得更美好了些许。性能

和少华家人联系后得知,在最后的时候,少华还时不时的提起“我有了一个新的想法”,“这段代码路径还能够再优化改进”。这是一个多么纯粹的人,对系统软件技术充满的虔诚的纯真的热爱,我心想恐怕也只有这般专一,才能成为一个改变世界的人。不少人活一生,恐怕也没有少华这三十几年来的闪亮和耀眼。一生活成这样,从我的来讲,没有遗憾,是咱们心目中的英雄!测试

我和少华最直接的工做交集,我印象最深的有两件事情。大数据

第一件事情是我在解决MD raid1在NVMe SSD上的读写性能瓶颈时,少华认为个人修改可能会在多层MD设备堆叠的时候引入死锁,而我认为不会。咱们在邮件列表里来回讨论了不少次,他指导我来理解MD代码中的一些细节,最终咱们发现MD raid1在发射IO的时候会从另一个raid1d()线程来处理,因此不会在generic_make_request()里面发生死锁,少华鼓励我“这是很好的讨论”,而后接受了个人patch。然后来少华还发现了个人patch里的其余问题,直接就修掉了。在少华的帮助下,除了咱们将MD raid1的读性能提高了好几倍以外,我也对MD的基本原理有了更深入的认识。优化

第二件事情是有用户报告MD raid0在NVMe SSD上作trim的时候时间很是久,我本身测试在15T的NVMe raid0设备上格式化xfs文件系统(加trim)须要300多秒,绝大多数时间都用在trim这里了,这是很不正常的。少华分析这是由于raid0会将上层发来的discard bio按照stripe大小作切分,而后再发送到raid0组成的不一样硬盘上去,因此当raid0容量比较大的时候,本来的一个discard bio可能会被切分红几百甚至上千万个小bio来处理,这性能一下就下降了。咱们的思路是将切分后的bio再根据每个raid0的组件设备拼接起来,最后能够组成连续的一个或者极少数几个bio,而后再将拼接后的bio发送到每个组件设备上去,这样就能够下降几百万个bio了。我先写了一个很复杂的patch,来准确的将全部切分的bio按照每一个设备一个bio的方式拼接起来。虽然拼接出来的bio最少,可是代码很是难读懂。少华后来作了一个实现,大概几十行代码,作了一个次优化版本:线程

640?wx_fmt=jpeg

raid0_handle_discard()核心代码片断ip

少华的代码,经过一个很优雅的循环,就完成了将分布在不一样组件设备上的bio的拼接,而且在绝大多数一般状况下,拼接效果和个人复杂代码同样,速度还更快!最后我测试出来,少华的这个代码能够将在raid0上格式化xfs文件系统的速度从300多秒下降到20多秒。当我阅读少华的patch时,心中充满的欣赏和愉悦,能看到一段更优雅和高效的代码,真的是很是愉悦的事情,并且这种好心情能够持续好久,往往想起都会以为开心。内存

再后来我接受了bcache子系统的维护工做,和少华一块儿密切合做的机会就少了不少。但我一直在关注他在内核里的工做,看到他继续在作的不少优秀的工做。很是切合实际的说,少华是为Linux内核作贡献的最杰出和最重要的中国人之一,从全球华人的范围来看他的工做重要性也可以进入前20位。而他还这么年轻,还不到40岁,实在是咱们这辈人之中的璀璨明星,能和他一块儿工做是个人骄傲和荣幸!开发

在写这些文字的时候,不由回想起从最初认识少华,那时他在Intel OTC我在SUSE Labs,他在作性能相关,我在作文件系统。而后2009 年咱们在CLSF[1]会议上第一次见面,而后2010年他和其余Intel朋友一块儿帮忙在Intel紫竹园区举行第二届CLSF。再后来他离开了Intel去了存储领域创新独角兽公司Fusion IO,在PCIe SSD、IO调度器和块设备层作了大量的优秀工做。在我加入阿里组建淘宝内核组的时候,他已经决定去Facebook内核团队,和Jens Axboe, Chiris Mason, Tanjun Heo等国际顶级内核黑客一块儿工做,很遗憾没有机会和他作同事。少华一直是咱们这一批人中最耀眼最杰出的极少数几我的。我在2016年遇到参加Kernel Summit的Tanjun Heo的时候,他特地反复几回的提到,少华很是优秀,在块设备层作了不少优秀的工做。可以被顶级黑客这样评价的人,少之又少,而我认识的国人之中大概也就两三我的吧。当时我意识到,通过长期不懈的努力工做,在Linux内核开发领域,少华已经跻身全球最好的IO栈开发者之列了。

从git log里看到少华的大量的贡献,我感受到少华虽然人离开了咱们,可是他的代码,仍然散发着他的才华,继续在为世界作贡献。在从此的工做中,咱们还会继续阅读他的代码,就像和他在谈心,对于熟悉他的人而言,这虽然心酸,也是和老朋友对话的最好的方式。而我也知道,他的代码以及他所维护的MD子系统,在工业届被普遍应用。譬如如今火热的PD-1/PD-L1生物制药领域,经过大数据的方式来分析DNA特征,其中的信息处理系统中Linux内核和高性能IO栈确定被普遍的使用到了。少华虽然离开了咱们,他为这个世界留下的贡献,仍然在为创造更美好的世界发挥价值。

咱们都会离开这个世界,或早或晚,命不在长短而在价值,活得有价值是很幸运的。很痛心少华过早的离开了咱们,但我也很羡慕他的人生活出了精彩,他本身的不懈奋斗为这操蛋的世界带来了更多的光亮。这光亮,对家人对朋友,都是鼓励和激励,让咱们继续在这操蛋的世界里,为更好的世界努力不懈,也享受生活中点滴的幸福。感激少华,你短暂的一辈子所创造的温暖和快乐,让我感觉到这世界多一点的善意和但愿。

CLSF[1]: China Linux Storage, Memory management & File system Workshp

Linux阅码场也总结了少华的patch list:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/log/?qt=author&q=shaohua&from=groupmessage

逝者已矣,生者如斯。而代码,却永远地留在了Linux内核里。这是一个Linux开发者的足迹,也是咱们能够永久寄托哀思的地方。

640?wx_fmt=png

....

相关文章
相关标签/搜索