Linus 的独特放松方式:写汇编代码


Linus Torvalds最近在Linux 6.5合并窗口中对一个性能优化补丁进行了改进。

该补丁旨在为csum_partial函数提供大幅吞吐量提升和降低延迟,该函数在Linux内核中通常被用于校验和(Checksumming)。 csum_partial 函数用于从文件系统到网络的校验和。使用建议的补丁,在某些情况下可以对延迟优化 8%~9%,吞吐量则提高约 30%。

在审查代码时,Linus Torvalds在邮件列表上评论道:“有些人通过在游泳池旁喝一杯饮料来放松,我则通过写内联汇编代码来放松。”

最终,Linus Torvalds合并了原始的csum_partial优化补丁,他自己写的代码则需要进一步审查和讨论。


相關推薦

2023-04-17

一份 MINIX。 As and Bs 游戏搞定后,Linus 开始学习英特尔汇编语言,并在某一天向 Lars 展示了他编写的一个执行多任务处理的程序:一个任务或线程会在屏幕上写入字母“A”的流,另一个是“B”;当流 As 变成 Bs 时,上下文切换

2021-12-13

法律词汇、明确对专利的说明、更好地兼容其它许可证、放松终止条款、对下游自动授权等等,并且逐渐得到开源软件的主流认可。 综合 Linus 的“症状”,基本可以诊断: Linus 对 GPLv3 的厌恶是起源于更深处,是从心底的哲

2023-05-10

本中的 LAM(“线性地址掩码”)的 “access_ok()” 的完成方式感到很不爽,而且它实际上也有一些小 Bug ,所以我动手清理了代码。 改动主要集中在以下几方面: 使用 __user 指针的符号位而不是屏蔽地址,并根据 TASK_SIZE 范

2023-07-03

。 我们基本上有三种不同的堆栈扩展情况,它们的工作方式都略有不同。 目前,Linux 6.5 中的这个问题应该已经得到了解决。更多详情可查看此处。

2023-05-02

严厉批评,从名称到功能设计等多方面批判了一番。 在代码得到改进后,LAM 支持代码再次作为 x86/mm 的一部分发送到了 Linux 6.4 的合并窗口。Linus Torvalds 在周五进行了合并,拉取了英特尔工程师提交的 LAM 启用代码(尽管 Linus

2023-08-11

不是来源于文件系统本身,而是内核模块本身之外所需的代码更改。 现在,Linus Torvalds 本人已经开始亲自 review 所提交的代码,并就相关情况发表了自己的看法。 Linus 昨天完成了对 Bcachefs 代码的 review。他表达了对部分锁定

2022-02-28

例如面向 x86-64 目标平台进行编译时,可以用以下的方式编写代码: use std::arch::asm; // Multiply x by 6 using shifts and adds let mut x: u64 = 4; unsafe { asm!( "mov {tmp}, {x}", "shl {tmp}, 1", "shl {x}, 2", "add {x}, {tmp}", x = inout(reg) x, tmp = out(reg) _, )

2023-09-02

Linus 这周又发飙了,导火索是一个缩写词:"GenPD"。 前几天,Linux 内核维护者提交了一个 PR——「ARM: SoC/genpd driver updates for v6.6」,具体内容如下图所示: 据了解,GenPD provider 接口已在内核中多处地方出现,但从未有人解释什

2024-10-10

在日前宣布推出 Linux 6.12-rc2 的公告中,Linus Torvalds 对内核维护者 commit 信息的英文语法也提出了更多要求。 他希望,内核维护者在描述拉取请求中的变更时能够避免使用被动语态,更多的使用主动语态、命令式语气。 我

2024-09-26

st 也将取代 C/C++ 吗?有人就认为,Rust 适合写内核级别的代码,但并不是适合业务开发,因为它不够高效,不够灵活。 【开源漫谈】第十四期,我们邀请了三名资深Rust 专家,以直播的形式,深入探讨 Rust 在操作系统领域的崛

2023-10-19

不可写段进行封装,这也将自动使所有应用程序受益。 Linus Torvalds 对 mseal() syscall 提出的模型表达了保留意见,目前这个提案并没有直接被接受,需要修订才能进化成适合上游的形式。 Linus 表示: “我对添加某种’锁

2022-12-21

看到整个地址空间)。 也许这不是 LAM 在 x86 上的工作方式,但它对 untagged_addr() 的更改并不是 x86 特定的。所以我真的认为这是完全错误的,除了命名之外, 它全都是一些无效的假设。事实上,这个特定于 mm 的 LAM 功能,最后

2023-09-14

就在昨晚,Bcachefs 文件系统驱动程序已被合并到 Linux-Next 代码树,作为实验代码的松散测试区域,希望进入“下一个”内核周期。 Bcachefs 是一个写时复制(CoW)的文件系统,其源自于 Linux 内核的块缓存 Bcache。几个月前,Bca

2022-08-24

模式。 调试器和嵌入式开发 计划开发一个按需反汇编(disassemble on demand)的功能。该功能不会在 2022.3 中准备好或公开使用,但这项功能的开发工作现在已经开始了。 改进在 macOS 上以 root 身份运行/调试 为了增强 CLion