- 博客(19)
- 收藏
- 关注
翻译 寻找 AOSP 社区
以 Android 开源项目 (AOSP) 为代表的 Android 操作系统的核心,可以说是迄今为止最成功的开源项目之一;其用户数量以数十亿计。但很少有人会认为它是一个真正面向社区的项目。在 2024 年 Linux Plumbers 大会上,Chris Simmonds 问道,为什么 AOSP 社区如此难以找到,以及可以采取哪些措施来改善这种情况。
2024-10-09 19:24:04
275
翻译 Linus 和 Dirk 讨论继任、Rust 和更多话题
Linus 和 Dirk show” 在开源峰会上一直是一个固定项目,自从这个会议存在以来就一直如此;它始于会议还被称为 LinuxCon 的时候。正如 Linus Torvalds 在今年奥地利维也纳的欧洲开源峰会(OSSEU)上所述,由于他出了名地不喜欢发表演讲,他和 Dirk Hohndel 一直以基调会话的形式,就一系列话题进行非正式的聊天。这样,Torvalds 就不需要准备,但也不知道会提到哪些话题,这使得"对我们其中一人来说更有趣",Hohndel 带着笑意说。
2024-09-29 11:51:30
280
翻译 LPC 2024 会议讨论 sched_ext
可扩展调度类(sched_ext)允许以一组从用户空间加载的 BPF 程序的形式实现 CPU 调度器;它首次出现在 2022 年底的邮件列表中。自那以来,sched_ext 引发了一些争议,但目前计划将成为 6.12 内核发布的一部分。在 2024 年的 Linux Plumbers Conference 上,日益壮大的 sched_ext 社区举行了其首次公开聚会;sched_ext 似乎在调度器设计中引发了新的创造力爆发。
2024-09-27 18:46:51
608
原创 SLUB 分配器的下一步计划
Babka 开始说,在 2023 年的峰会上,已经作出了移除 SLAB(两个通用分配器中的一个)的决定,只留下 SLUB 在内核中。最初的预期用户是枫树(maple tree)数据结构,它目前在进入关键部分之前正在批量分配最坏情况下的对象数,然后在之后返回未使用的对象。在Android上,使问题复杂化的是 RCU 回调只在一些CPU上运行,并不有助于处理那些不运行它们的 CPU 上的每 CPU 数组。计划是创建一个 kfree_rcu() 的变体,将对象放入数组中,并将它们放在一边作为一个整体释放。
2024-05-21 19:41:10
674
1
翻译 2024年页面的状态
Wilcox 最后说,转换为使用大型 folios 能使编译内核的速度提高5%,也是支持其他期望功能所必需的,所以在场的开发者应该希望尽早完成转换,而不是拖延。目前,内存映射的开销占它所描述的内存的1.6%,这一比例过高。这一转换的第一步,他开始时说,是将传统上存储在内核的页面结构中的大量信息转移到 folios 中,然后将 struct page 的使用者转换为使用新的结构。在下一个阶段结束时,计划是将 struct page 缩减为一个单一的、八字节的内存描述符,其底部的几位将描述所表述的页面的类型。
2024-05-16 19:23:35
231
原创 可扩展调度类还在努力
翻译 https://lwn.net/Articles/972710/ By Jonathan Corbet May 9, 2024背景介绍,Tejun Heo 提出的 sched_ext 补丁在 V4 版本的时候,Peter Zijlstra 给了NAK,Tejun Heo 继续发出了 V5 和 V6 版本持续推动进入主线。可扩展的调度器类(或称为 “sched_ext”)是一个全面的框架,它允许以一组在运行时加载的 BPF 程序的形式实现CPU 调度器。
2024-05-11 19:37:04
1846
1
原创 实时和嵌入式Linux的状态
Linux,众所周知,出现在广泛的系统中。虽然服务器和大型数据中心获得了很多关注,并且今年将永远是Linux桌面的年份,但在实时和嵌入式应用领域也有大量的Linux应用。2024年北美开源峰会的实时和嵌入式跟踪会议上举行的两场讲座为听众提供了 Linux 在这些领域进展的最新情况。realtime Linux 的工作似乎接近完成,而嵌入式社区仍在全速推进。
2024-05-09 18:29:35
1763
1
原创 file_operations 结构体变小
内核开发者被鼓励以小批量更改的方式提交他们的修改,这是为了让审查者的工作更加轻松。因此,当一个资深开发者和维护者向邮件列表提交了一个包含437个补丁、涉及859个文件的系列时,肯定会让人眉头一挑。具体来说,Jens Axboe 提交的这个系列是在清理一个自Linux内核几乎初始就有的核心抽象;设备驱动的作者(包括其他人)将不得不注意。
2024-05-08 19:57:46
703
1
原创 对 Arm CPU TSO 内存模型的支持
在CPU层面上,内存模型描述了处理器重排序内存操作的自由度,包括但不限于此种自由度。如果底层代码没有考虑到内存模型,很可能会遇到不愉快的意外。自然地,不同的CPU提供不同的内存模型,这增加了某些类型并发软件的可移植性难度。为了简化问题,一些 Arm CPU 提供模拟 x86 内存模型的能力,但是在内核中使该功能可用的努力正遭遇到反对。CPU 设计师会尽一切可能提升性能。关于内存访问,“一切”可能包括缓存操作(caching operations)、乱序执行、将多个操作合并为一个,等等。
2024-05-07 18:13:18
931
1
原创 Warning about WARN_ON()
无论这一更改如何,开发人员将继续被鼓励使用像 pr_warn() 这样的日志函数而不是 WARN_ON() —— 直到有人不可避免地添加了一个panic_on_pr_warn的sysctl 调节项,整个过程又开始重演。然而,越来越多地,内核的 WARN_ON()一系列宏的使用,这些宏曾是开发人员被告知要使用的替代工具,也在被不鼓励使用。这是因为,任何启用panic_on_warn 的用户已经明确要求如果 WARN*() 触发,则内核会崩溃,这样的用户必须做好应对系统更有可能崩溃的后果的准备。
2024-04-30 18:47:04
712
1
原创 6.6内核开发统计
另一个值得一看的统计数据是由开发者应用的Signed-off-by标签,这些标签除了给定补丁的作者之外的任何人都会添加。“在没有惊喜的情况下,6.6将是2023年的最后一个发布版本,并因此将成为下一个长期支持内核版本,稳定更新将在接下来的两年中进行。因此,查看整个超周期的贡献是有意义的。现在是时候进行LWN传统的检查,看看这个版本的变化来自哪里,以及一起观察较长的开发“超周期”,很可能会在6.6版本结束。“对6.6版本做出贡献的开发者中,有249名是新加入内核社区的,这也是一个相当典型的数字。
2023-11-10 13:44:25
435
1
原创 An EEVDF CPU scheduler for Linux
任务调度器是内核的一部分,当有很多任务可以选择时,任务调度器决定下一个运行哪个任务,其角色对于达到良好的性能和延迟至关重要。以前的算法,名为CFS,已在Linux 2.6.23中合并。在6.6版本中,它被一个使用新算法的代码替代,该算法被称为EEVDF("最早可用虚拟截止日期优先")。
2023-11-02 19:28:46
676
原创 Energy-aware scheduling on asymmetric systems
Energy-aware scheduling on asymmetric systems
2023-05-30 17:51:21
208
1
原创 内核调度基础
5.x以后的内核,做了一个很牛x优化(把链表遍历优化为地址大小比较),按照调度类的优先级在链接脚本中静态的指定放置在内存中idle_sched_class, fair_sched_class ,rt_sched_class,dl_sched_class,stop_sched_class在内存中顺序放置,起始地址__begin_sched_classes,结束地址__end_sched_classes)调度类是和调度策略绑定的,进程选择不同的调度策略使用该调度策略对应的调度类;
2023-03-24 19:52:58
185
原创 《ARMv8-A Memory systems》
You should understand the operation of the memory system and access ordering in cases where your code interacts directly either with the hardware or with code executing on other cores,
2023-01-31 09:26:46
553
原创 Linux内存映射
内存映射实现进程虚拟地址空间和实际物理页帧之间的映射,由于用户进程总的虚拟地址空间比可以使用的物理内存大的多,因此只有最常用的部分才与物理页帧关联。进程试图访问用户空间一个虚拟地址,但页表无法确定物理地址(映射未建立);处理器接下来触发一个缺页异常,内核处理缺页异常
2023-01-30 20:37:25
2473
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅