返回开发者新闻

开发者简介:Linux 内核团队 (Martin Lau)

2022年10月6日发布者:Sreevani Sreejith

在今天的采访中,我们请来了 Meta 内核团队的软件工程师 Martin Lau。他从事 BPF(伯克利包过滤器)和内核网络开发的工作。

本系列采访重点介绍为 Linux 内核做出贡献的 Meta 软件工程师。Meta Linux 内核团队与更广泛的 Linux 社群合作,为内核添加新功能,并确保内核在 Meta 生产数据中心中良好运行。团队中的工程师与业内同行合作,使内核更适合 Meta 的工作负载,并使 Linux 更适合所有用户。

请介绍一下自己和你作为 Meta 内核开发者的日常工作。

我叫 Martin KaFai Lau,入职 Meta 已经有 9 年半了。6 年前,我加入了 Meta 内核团队。我专注于 BPF 和网络开发领域。这之前,我一直待在 Meta 流量团队,从事 HTTP、TLS 和 CDN 方面的工作。

我每天的日常工作包括查看邮件列表中的补丁、支持生产环境中的 Meta 用例、与其他网络团队一起探讨想法以及为上游编写补丁。

最近有什么事让你感到兴奋或无比自豪?

通过 BPF 实现内核网络堆栈可扩展性的工作。除此之外,从事与堆栈式工作负载(需要对每个任务都施加带宽限制)相关的工作,探讨使用 BPF 进行单向延迟测量,还有将服务启动时间从一分钟以上缩短到 6 秒,都让我感到十分高兴。

在 Meta 这样的公司里担任内核开发者,有什么特别令人兴奋的事情吗?

规模。如能在 Meta 的生产规模下解决各种问题,必将令人兴奋不已。内核是所有服务使用的核心部分,是计算机硬件及其进程之间的核心接口。内核的改进将对所有这些服务都产生积极的影响。

规模是指具有丰富生产经验的内部用户的数量,其中每个用户的用途可能不同。从不同团队获得反馈的速度要快得多,他们可以说明某一部分在现实世界中能否良好运行。他们的反馈还会推动新的内核开发。

我的同事是我不熟悉的不同内核子系统的维护者。在 Meta 与他们共事是一种很好的学习经历,价值非凡。

请介绍一下你在今年 Linux Plumbers 大会 (LPC) 上汇报的主题。

在 LPC 演讲中,我概述了内核里的 BPF 网络 hooks 及其在 Meta 的使用方法、我经常从我们内部用户处听到的惊喜信息,以及未来可以解决的问题。

多年来,BPF 获得了很大的发展,因此有时很难确定应如何在网络堆栈中使用 BPF。你可以访问活动页面“Meta 中的 BPF 网络 hooks 和用户体验概述”,浏览演讲中的一些资源。

在你的职业生涯中,你遇到过哪些关于内核或 OSS 开发的误解?

我之前的工作仅专注于用户空间。通常情况下,我能快速地了解我当时所负责部分的总体情况。我认为,在开展内核相关工作时很难做到这一点,因为内核的代码库规模庞大。更重要的是,从上游人员处获取帮助也很困难。

我花时间阅读并仔细查看了邮件列表,注意了相关人员处理邮件列表的方法。要掌握内核中的所有内容是不可能的。于是,我缩小了范围,专注于一个部分,修改了某个内容,以获取上游的信任。然后,我重复这个过程,以拓宽我的知识空间。

在开始内核开发时,哪些资源会有帮助?用户可以在哪里了解你的工作进展?

Linux 内核邮件列表。花点时间阅读你感兴趣的帖子。了解相关方平时的疑虑和兴趣。从可以切实解决某个生产问题的小事着手。

我通常会积极关注 BPF 邮件列表方面的信息。

如需了解有关 Meta Open Source 的更多信息,请访问我们的 Open Source 网站、订阅我们的 YouTube 频道,或在 TwitterFacebookLinkedIn 上关注我们。

图像版权:Tux 企鹅是 Larry Ewing (lewing@isc.tamu.edu) 和 GIMP 的原创设计。