- 博客(637)
- 资源 (83)
- 收藏
- 关注
原创 Finding locking bugs with Smatch
Smatch是一款基于GPL许可的C语言静态分析工具,专注于Linux内核代码检查。在LinaroConnect2025大会上,主要开发者DanCarpenter介绍了其最新改进:重构插件系统以增强模块化,特别是针对锁机制的检查能力。该工具通过控制流和跨函数分析追踪锁状态,能检测错误路径未解锁、重复加锁等常见问题。相比其他开源工具(如Cppcheck、Coccinelle),Smatch在流程分析方面具有优势,但存在速度较慢、主要适配内核代码等局限。最新版本已改用类型而非名称追踪锁对象,有效解决了多名称引用
2025-06-12 23:50:26
455
原创 Improving iov_iter
摘要:在2025年LSFMM+BPF峰会上,David Howells主持讨论了iov_iter接口的改进方案。该接口用于内核缓冲区管理,但存在类型复杂、内存生命周期管理困难等问题。会议重点探讨了: 现有9种iov_iter类型(如ITER_IOVEC、ITER_BVEC等)的局限性,特别是废弃的ITER_XARRAY类型存在RCU锁问题; folio世界带来的新挑战,底层组件无法假设所有缓冲区都可获取页引用; 加密API从scatter-gather列表迁移到iov_iter的分歧,Hellwig反对添加
2025-06-12 23:44:13
419
原创 An end to uniprocessor configurations
摘要:Linux内核最初仅支持单处理器(UP),随着1995年引入SMP支持后一直保留双代码路径。Ingo Molnar近期提交补丁系列(43个)提议彻底移除UP支持,删减约1000行代码并简化调度器结构。虽然这会导致单处理器系统性能下降约5%,但目前实际UP用户极少,多数发行版已默认使用SMP内核。该改动标志着内核开发重点的根本转变,将维护负担从SMP转移到UP支持者身上。尽管补丁尚需更多测试,但社区暂未出现反对声音,反映30年来硬件生态的深刻变迁。
2025-06-12 23:38:31
460
原创 The second half of the 6.16 merge window
GPIO 和引脚控制:联发科 MT6893 和 MT8196 SoC、瑞萨 RZ/V2N SoC、联发科天玑 1200(MT6893)I2C、Sophgo SG2044 I2C、瑞萨 RZ/V2N R9A09G056 I2C、瑞芯微 RK3528 I2C,以及 NXP Freescale i.MX943 SoC。用于生成崩溃报告的 crash dump 内核(在主内核崩溃后运行的特殊内核)现在可以复用现有的 LUKS 密钥,从而支持将崩溃转储写入加密文件系统,这在此前是不可能实现的。
2025-06-12 23:32:29
727
原创 io_uring, SCM_RIGHTS, and reference-count cycles
本文介绍了Linux内核中io_uring机制的最新进展及其与虚拟文件系统(VFS)引用计数问题的关联。io_uring机制经过多轮安全审查后,被发现存在因SCM_RIGHTS文件描述符传递导致的循环引用问题。VFS维护者Al Viro详细解释了文件引用计数管理机制,特别是当Unix域套接字通过SCM_RIGHTS传递文件描述符时可能形成的引用循环。文章重点描述了当进程将两端套接字注册到io_uring后又互相传递描述符时,会导致无法释放的内核内存泄漏。最终通过借鉴SCM_RIGHTS的处理逻辑,Jens
2025-06-07 19:27:29
645
原创 Slowing the flow of core-dump-related CVEs
Linux 6.16内核将对coredump(核心转储)处理机制进行重大改进,以解决长期以来存在的安全漏洞问题。开发者Christian Brauner指出,现有的coredump API存在严重缺陷,导致频繁出现CVE漏洞。 当前coredump机制的主要问题包括:用户空间helper程序以root权限运行、PID重利用引发的竞态条件,以及可能被攻击者利用来获取特权进程内存数据。Qualys近期就发现了Ubuntu和systemd的coredump处理工具中存在的漏洞。 6.16内核引入两项关键改进:1)
2025-06-07 17:57:55
547
原创 Zero-copy for FUSE
当一个使用 io_uring 的应用程序需要对其缓冲区执行读写操作时,内核会对这些缓冲区进行两次封装:首先封装为 iov_iter(类型为 ITER_UBUF),然后再封装为 bio_vec,后者用于描述一个块 I/O 请求的各个部分。然后,应用程序就可以使用 io_uring 的“固定”读写操作,重用内核已创建的对象,而不是每次调用都重新创建。Linux 6.15 对 ublk 做出了改进,允许服务器使用前面提到的 io_uring 缓冲区注册机制,这样就可以执行固定的读写操作,从而避免了数据复制。
2025-06-06 17:25:42
468
原创 Fending off unwanted file descriptors
有趣的是,在这一功能漫长的发展历史中,似乎从未有人认真考虑过接收方是否真的希望获得一个新的文件描述符。开发者通常会仔细管理程序中的打开文件表,关闭不再需要的文件,并确保不必要地将文件描述符传递到新的进程或程序中。如果传入的文件描述符处于某种挂起状态——例如一个攻击者控制的 FUSE 文件系统或一个挂起的 NFS 文件——被安装到某个进程中后,接收方在尝试关闭它时可能会被无限期阻塞。但如果接收方并不想要一个新的文件描述符呢?Iwashima 的解决方案是在套接字上提供一个新选项,以禁用接收文件描述符的能力。
2025-06-06 17:11:13
742
原创 Device-initiated I/O
摘要 在2025年Linux存储、文件系统、内存管理与BPF峰会上,Stephen Bates主持了关于设备发起I/O的讨论,重点关注点对点DMA(P2PDMA)技术的演进。P2PDMA自2018年Linux 4.20内核版本引入,允许PCIe设备间直接传输数据而无需经过系统内存。当前该技术已支持Arm64架构,并解决了早期与IOMMU兼容的问题。 会议探讨了设备发起I/O作为P2PDMA的下一步发展方向,目标是减少CPU在高速I/O操作中的负载。随着NVMe SSD的IOPS突破千万级,传统CPU处理方式
2025-06-05 15:42:52
1582
原创 Two sessions on faster networking
文章摘要: 2025年Linux峰会上,Cong Wang和Daniel Borkmann分别提出优化Linux内核网络性能的方案。Wang探讨通过BPF加速socket操作,包括使用sk_msg结构简化消息传递、绕过TCP栈实现本地通信,以及优化短消息处理性能。Borkmann则聚焦虚拟机网络开销问题,提出基于AF_XDP和netkit的新架构,使流量直接从物理网卡经QEMU进入VM内核,减少中间环节。两项方案均致力于消除网络协议栈中不必要的操作,但针对不同场景:Wang优化本地通信,Borkmann提升
2025-06-05 15:37:45
739
原创 Hardening fixes lead to hard questions
摘要:内核开发者Kees Cook因使用b4工具修改提交历史时意外重写了39个包含Linus Torvalds署名的提交,导致其kernel.org账户被暂时封禁。事件引发了对恶意活动的猜测,但最终确认是操作失误。b4维护者Konstantin Ryabitsev承认工具应增加防护机制,Torvalds要求禁止重写他人提交。该事件凸显了强大开发工具潜在的破坏性,促使相关工具改进安全措施。(149字) 核心要点: 操作失误引发安全警报 git历史重写导致身份混淆 开发工具缺乏必要防护 事件推动工具链安全改进
2025-06-03 05:38:31
962
原创 The first half of the 6.16 merge window
音频支持:支持 AMD ACP 7.x、Cirrus Logic 的 CS35L63 放大器和 CS48L32 音频处理器、Everest Semiconductor 的 ES8375 与 ES8389、龙芯一号 AC'97 编解码器、NVIDIA Tegra264 SoC、Richtek 的 ALC203 与 RT9123 编解码器、瑞芯微 SAI 控制器、Intel WCL 以及 DJM-V10 混音器。现在,它已被一个更易维护、并与 Sphinx 构建系统集成得更好的 Python 脚本所取代。
2025-05-30 15:45:32
764
原创 Block-layer bounce buffering bounces out of the kernel
因此,Hellwig 提交了一组补丁,使得在启用了高端内存支持的系统上,这四个驱动全部无法加载,从而将 bounce buffer 的用户数量归零。将这些内存分配给用户空间确实缓解了燃眉之急,但不久之后,内核无法将高端内存用于自身操作的问题也暴露出来:可用于内核的低端内存实在太少,难以支撑系统高效运行。有趣的是,添加到 2.3.27 的 bounce buffering 代码中曾留有一条注释,说它将在 2.5 版本中“移动到块层”,因为当时计划对块设备代码进行一次大规模重构。在某些情况下它仍是不可避免的。
2025-05-30 02:50:26
749
原创 Verifying the BPF verifier‘s path-exploration logic
摘要:Srinivas Narayana在Linux峰会提出扩展Agni工具验证BPF验证器的路径探索逻辑。路径探索是BPF验证器的核心功能,通过选择性裁剪重复路径来提升效率,但实现复杂且曾引发安全问题。Narayana计划结合形式化方法和穷举测试来验证八项关键条件,重点解决"状态包含性"和"健全泛化"两个特性。虽然该项目面临挑战,但得到BPF开发者支持,有望为验证器最复杂的部分提供正确性保障。
2025-05-28 04:35:34
927
原创 Cloud-storage optimizations
Ts'o 表示,ext4 和其他文件系统开发者每周都会进行电话会议,而这次巧合的是,Oracle、Amazon 和 Google 的开发者也参与了,这些公司显然都是云服务提供商。他认为,与其协调硬件厂商,不如协调云存储厂商,这可能会更容易,也能更快推进相关功能的落地。Ts’o 指出,NVMe 已经有了原子写扩展,SCSI 也在添加类似扩展,不过语义略有不同。但他说,目前的实现中,由于在进行直接 I/O 写入时 BIO 结构中传递的一些标志,“意外地”使得块层不会撕裂一个对齐的 16KB 写入操作;
2025-05-27 14:15:08
716
原创 Managing multifunction devices with the auxiliary bus
Linux内核引入辅助总线机制解决多功能设备驱动协同问题 针对Linux内核中多功能硬件设备驱动协同管理的问题,Dave Ertman提出了"辅助总线"(auxiliary bus)解决方案,并已被合并到5.11内核。该机制通过主驱动管理设备状态和共享资源,次级驱动处理特定功能的方式,解决了当前内核缺乏标准方法协调驱动间交互的痛点。辅助总线采用两级架构:主驱动创建并注册auxiliary_device结构,维护共享数据;次级驱动通过auxiliary_driver结构实现特定功能,通过标
2025-05-27 13:38:53
851
原创 Formally verifying the BPF verifier
摘要:本文介绍了Santosh Nagarakatte团队在2025年Linux存储与BPF峰会上展示的Agni工具,该工具用于对Linux内核中的BPF验证器进行形式化验证。Agni通过将BPF验证器的C代码转换为SMT问题来自动验证其正确性,特别是针对算术运算和位操作等核心功能。团队克服了共享细化操作符建模等挑战,发现并修复了早期内核版本中的漏洞。随着验证器复杂度增加,Agni的验证时间从数周优化至30分钟。未来计划包括开发领域特定语言(DSL)简化验证器开发,以及扩展验证范围至路径裁剪算法和Spect
2025-05-24 01:05:49
490
原创 Long-duration stress-testing for filesystems
在2025年Linux存储、文件系统、内存管理和BPF峰会(LSFMM+BPF)上,文件系统测试成为焦点。Meta的Boris Burkov主持了相关会议,探讨了如何通过压力测试和长时间运行测试来发现文件系统在生产环境中的潜在问题。Burkov回顾了他在Btrfs开发中的经验,指出生产环境中的压力测试至关重要,并分享了Meta遇到的一些典型bug,如数据损坏、元数据损坏和容器间的资源争用问题。他强调了现有测试工具(如fstests)的局限性,特别是数据完整性测试的不足,并提出了改进建议,包括增加内存压力测试
2025-05-23 15:27:36
663
原创 An update on continuous testing of BPF kernel patches
在2025年Linux存储、文件系统、内存管理与BPF峰会上,Ihor Solodrai分享了他在过去六个月中为BPF子系统持续集成(CI)测试所做的工作。他展示了一个用于分析verifier失败的可视化工具,并讨论了如何扩展测试覆盖范围,包括将GCC加入测试套件和添加sched_ext测试。Solodrai还解决了测试执行节点过载的问题,通过将构建步骤移至一个自动扩缩容的服务来优化测试流程。尽管测试节点无法自动扩容,导致测试执行成为新的瓶颈,但Solodrai的工作显著提升了BPF CI测试的可用性和可靠
2025-05-21 05:06:24
958
原创 Merging copy offload
内核支持“拷贝卸载(copy offload)”功能已经讨论了十多年,但始终未被合并。该功能允许主机系统向块存储设备发送命令,让设备在内部完成数据拷贝,无需主机参与,从而节省CPU资源、PCI带宽和网络带宽。在2023年Linux存储、文件系统、内存管理和BPF峰会上,Nitesh Shetty主持了相关讨论,探讨了当前补丁集的状态,并希望其能尽快被合并。该功能最早由Martin Petersen在2014年提出,但之前的实现方案因可扩展性和兼容性问题未能获得社区支持。Shetty及其团队自2021年重启了
2025-05-20 21:33:09
724
原创 Reports from OSPM 2025, day one
第七届Linux内核电源管理与调度(OSPM)峰会于2025年3月18日至20日在德国Uhldingen-Mühlhofen举行,由Linutronix、Arm和比萨圣安娜高等研究院赞助。会议讨论了多个主题,包括调度器接口的演进、调度器管理器(schedulergovernors)的概念、以及EAS(能量感知调度)的改进。Morten Rasmussen探讨了如何通过改进EAS和EM(能源模型)来优化CPU调度,特别是在异构系统中。Rafael J. Wysocki则分享了在英特尔混合芯片上实现EAS的最新
2025-05-20 15:30:29
726
原创 Why RISC-V doesn‘t (yet) support KVM
RISC-V处理器架构因其开放性受到广泛关注,Linux对其提供了良好支持,但缺乏基于KVM的虚拟化支持。尽管已有高质量实现,但由于RISC-V的hypervisor扩展规范尚未被批准,相关补丁无法直接进入内核。开发者尝试将KVM支持代码放入staging目录以绕过政策限制,但遭到维护者反对。内核社区认为,阻止为现有硬件添加支持的优秀代码合并是不合理的,尤其是对于虚拟化这样的基础功能。这一事件凸显了RISC-V补丁接收政策的问题,可能促使政策调整。尽管存在争议,Linux有望在不久的将来获得对RISC-V的
2025-05-20 00:23:50
1148
原创 A new DMA-mapping API
在2025年Linux存储、文件系统、内存管理与BPF峰会(LSFMM+BPF)上,Leon Romanovsky介绍了其团队对DMA映射API的现代化改进工作。该改进旨在使API更适合当前内核,并减少因使用散布-聚集(SG)列表而导致的格式转换问题。新API允许DMA用户直接管理I/O虚拟地址(IOVA)空间,优化了通过I/O内存管理单元(IOMMU)进行DMA的路径。尽管该提议在技术层面得到了广泛支持,但DMA维护者Robin Murphy对其提出了反对意见,认为其将过多底层知识暴露给API用户。为打破
2025-05-16 21:03:36
1243
原创 Faster firewalls with bpfilter
在网络通信中,数据包过滤是确保安全和性能的关键技术。传统的iptables和nftables工具逐渐被BPF(Berkeley Packet Filter)技术所取代,BPF通过在内核中运行自定义的C语言子集程序,提供了更高的灵活性和性能。Bpfilter项目进一步优化了这一过程,通过将过滤规则直接转换为BPF程序,显著提升了处理效率。Bpfilter由三个主要组件构成:守护进程、通信库和命令行工具,它们协同工作以实现高效的网络流量过滤。尽管Bpfilter在性能上具有优势,但其复杂性和对特定硬件的要求限制
2025-05-15 15:16:59
718
原创 Porting Linux to a new processor architecture, part 3: To the finish line
本系列文章详细介绍了将Linux内核移植到新处理器架构的完整流程。文章分为三部分,第一部分和第二部分分别讨论了非代码相关的准备工作和早期代码实现,包括从汇编启动代码到创建第一个内核线程的过程。第三部分则聚焦于剩余的工作,主要涉及线程和进程管理,以启动init进程。文章深入探讨了内核线程的生成、线程切换机制、页错误处理、系统调用支持以及用户空间内存访问等关键步骤。通过这些内容,读者可以全面了解Linux内核移植的复杂性,并为未来的移植工作提供宝贵的参考。
2025-05-14 13:15:12
1049
原创 A look at what‘s possible with BPF arenas
BPF arena是一种内存区域,允许在BPF中编写任意数据结构,验证器在此可以更宽松地检查指针。在2025年的Linux峰会上,Emil Tsalapatis报告了其在编写sched_ext调度器时使用arena的经验。尽管整体上对arena感到满意,但他指出最大的问题是内核指针无法存储在arena中,这限制了其使用。目前,开发者需要将数据结构分为两部分存储:一部分在arena中,另一部分在BPF map中,以持有内核对象的引用。这种分割虽然可行,但降低了arena的便利性。Tsalapatis希望BPF
2025-05-14 13:07:19
715
原创 Porting Linux to a new processor architecture, part 2: The early code
本文是系列文章的第二部分,继续探讨将Linux移植到新处理器架构的过程,重点介绍了启动代码的实现。文章首先讨论了架构相关头文件的作用,这些头文件分为内核接口和用户接口两部分,通常涉及上百个文件,是移植过程中工作量较大的部分。幸运的是,许多处理器架构共享相似代码,这些代码已被汇总到通用头文件层中,减少了定制需求。接着,文章详细描述了启动流程,从手动编写的汇编函数开始,逐步执行一系列架构相关函数,如设置架构、初始化陷阱、内存管理等,最终创建第一个内核线程。这一过程帮助开发者理解必须实现的最小架构相关函数集合及其
2025-05-13 15:58:12
944
原创 Porting Linux to a new processor architecture, part 1: The basics
将Linux内核移植到新的处理器架构是一个复杂且文档稀缺的过程。尽管简单的移植可能仅需约4000行代码,但实际工作中仍面临诸多挑战。本文旨在概述移植流程,分为启动代码和内核正常运行后的架构相关代码两部分。移植的必要性取决于处理器是否具有新的指令集架构(ISA)。以TSAR处理器为例,虽然其核心兼容MIPS32 ISA,但由于其独特的虚拟内存模型,移植工作仍需大量修改。了解底层硬件是移植的基础,处理器的规格说明通常分为用户级ISA和特权架构两部分,后者包含移植中特殊且核心的信息。最后,创建链接脚本以指示链接器
2025-05-12 12:43:38
832
原创 Hash table memory usage and a BPF interpreter bug
Starovoitov 询问能否在不删除该字段的前提下重新排列结构内容,但这似乎不可行,因为结构中的其他部分是所有类型的 BPF map 都要使用的。因此,如果两个函数调用之间的指令数量足够多,以至于超过了该 16 位字段的容量,Protopopov 表示,调用目标的偏移就会出错。链表中的每个元素是一个 htab_elem 结构,包含键的哈希值、完整键的副本,以及两个联合体,分别为 per-CPU 和普通哈希表提供不同的功能。由于 BPF 哈希表用途广泛,这将是一组改动很大的补丁,因此他希望先征求意见。
2025-05-08 13:19:45
1334
原创 Filtering fanotify events with BPF
在 Liu 的补丁集中,他采用了为整个文件系统设置 fanotify 标记的方式,然后通过 is_subdir() 函数(判断某个目录项是否是另一个目录项的子目录)在 BPF 中进一步过滤事件。理想的方案应当是结合两者优势:使用类似 fanotify 的高效掩码机制来筛选感兴趣的文件,同时对更复杂的场景采用 LSM 提供的内核态快速处理能力。Goldstein 认为这个思路是合理的,但指出 fanotify 的掩码是所有监听者的联合掩码,因此 LSM 也可以使用相同的掩码,仅用于表明“有人感兴趣”。
2025-05-07 14:54:35
958
原创 Improving FUSE writeback performance
Koong 表示,该补丁集被拒绝,主要原因在于它可能会让存在缺陷或恶意的 FUSE 服务器通过迟迟不完成某些页面的写回,进而无限期地阻碍内存迁移。另一种可行的方案是,在可移动内存区域中划出一个专用区,用于存放可能在不确定时间内无法移动的页面,这样可以将碎片化的影响限制在该区域内。或者,对于那些表现不佳的非特权 FUSE 服务器,比如迟迟不完成写回或持有过多正在写回的页面的服务器,可以直接将其终止。有时候,数据足够重要,长时间等待是可以接受的,但比如说,等待 30 秒可能就已经太长,足以阻碍一次内存分配。
2025-05-07 14:44:27
587
原创 Injecting speculation barriers into BPF programs
另一个潜在问题是,对于那些易受 Spectre variant 1 影响但又不提供合适屏障指令的体系结构而言,目前这组补丁会禁用当前基于校验器的检查机制,却没有用基于屏障的保护机制来替代它。根据 Gerhorst(在补丁中)的说法,唯一受此影响的架构是 MIPS,而 MIPS 默认就完全不允许非特权 BPF,因此他说这个潜在的安全回退是“可以接受的”。攻击者在传统情况下可能需要艰难地在内核代码库中搜索可利用的代码,而使用 BPF 的攻击者则可以直接编写并加载他们自己的推测执行代码片段,这种方式高效得多。
2025-05-06 14:14:10
637
原创 Several Basic Concepts on the block layer
2.5 版本的“待办事项”之一是为块 I/O 子系统实现真正的写屏障(write barrier)功能。任何试图在基于磁盘的文件上实现真正事务行为的代码都需要这种能力。如果没有写屏障,日志文件系统和数据库管理器等系统就无法控制数据写入磁盘的顺序。写入顺序错误可能会导致数据损坏和其他严重问题。2.6 的块 I/O 子系统在设计时将写屏障作为核心特性之一。但截至目前,大多数底层块设备驱动实际上并没有实现写屏障功能,文件系统也没有使用它们。用于填补这些空白的补丁已经存在一段时间,但尚未合并进内核。
2025-05-05 17:07:36
552
原创 CDROM drives and partitioning
大多数用户从未遇到过这个问题,但对于那些遇到过的用户,Steven Hill 提交了一个补丁,为 SCSI CDROM 驱动添加了 CD 分区支持。不过,在此之前,使用带分区的 CD 的用户将不得不面对内核与发行版在 SCSI CD 设备号空间上的命名冲突问题。唯一的问题在于,如人们所预料的那样,CD 分区的次设备号会紧跟在整个 CD 设备的次设备号之后分配。好消息是,在 2.6 内核中,分区处理已经交由块设备层完成。的设备号是 11,0,那么其上的第一个分区就会被分配为 11,1。
2025-05-04 17:22:32
672
原创 Laptop mode for 2.6
一个较早版本的 laptop mode 补丁目前已进入 2.6.1-rc1-mm2 分支,这表明它有望最终被合并进 2.6 内核。Bart Samwel 接过了 laptop mode 的接力棒,并发布了多个版本的 2.6 补丁;该补丁的目的是最大程度延长笔记本电脑电池续航时间,其方式是尽量减少磁盘的转动时间。因此,启用 laptop mode 的用户有丢失长达十分钟工作成果的风险,但对很多人来说,这是可以接受的代价。一旦有事件强制磁盘转动,系统会立即将所有脏页写入磁盘,无论这些脏页在内存中存在了多久。
2025-05-04 17:18:58
566
原创 The status of object-based reverse mapping
我现在认为把 anon_vma 说成比 anonmm 更复杂是错误的(anon_vma 的链表比我那套引用计数逻辑更容易理解),而且我对最后一版补丁中的 VMA 合并逻辑很满意。正如 Hugh 所指出的,anon-vma 的换出(swapout)性能应该更好,因为其结构更容易找到某个页面所对应的 VMA。这两个方案在概念上类似,但各有优缺点,性能也基本相当。Andrea Arcangeli 的 anon-vma 补丁,它引入了一种数据结构,在每个物理页和引用该页的虚拟内存区域(VMA)结构之间建立联系。
2025-05-04 13:03:43
994
原创 Reverse mapping anonymous pages - again
也有可能是两者的结合方案;Andrea 的工作进展顺利,但值得注意的是,anon_vma 并不是匿名内存对象化反向映射机制的唯一实现。请记住,这项工作的目标是通过消除反向映射(“rmap”)链来提升内核的内存扩展性,这些 rmap 链用于查找引用某个页面的页表项。这意味着,在一个例外情况之外,所有共享匿名页的进程中,该页的虚拟地址是相同的。所谓 prio_tree,指的是 Rajesh Venkatasubramanian 提出的优先级树补丁,它加快了在某个页面被大量映射时,查找相关虚拟内存区域的过程。
2025-05-04 13:00:24
1085
原创 Flexible data placement
不过,写入未打标签或标签无效的数据并不会报错。Joshi 表示,设备本身并不关心这些标签,但如果打上了标签,数据“就可以按照预期的方式进行分组”。Busch 表示,如果根据数据的写入后多快被丢弃或覆盖的特性来分组,并使用不同的标签,会产生明显差异。”Busch 回答说,目前对文件系统的测试并不深入,重点转向了应用层,但他也认为对这些文件系统的日志写入打标签可能会带来显著影响。Busch 认为,如果文件系统是标签的仲裁者,它们可以为自己保留一部分标签空间,但这样仍可能与其他分区上的文件系统发生标签冲突。
2025-05-03 14:18:26
919
原创 Custom out-of-memory killers in BPF
内核无法发出“谁愿意被杀”这样的广播,因此 OOM 杀手必须运用一套启发式方法来选择受害者——既要尽可能多地释放内存,又要尽量减少用户的痛苦。当整个系统(或近年来的任意控制组)内存紧张到无法继续分配时,它会被“召唤”出来,其任务是终止一些进程以释放足够的内存。为此,内核提供了一些可调节的“旋钮”,允许某些进程自愿(或被强制)优先成为 OOM 杀手的目标。在默认配置下,内核会对系统内存进行超额分配,也就是说,它允许进程分配的内存总量超过系统可提供的总量(即物理内存与交换空间之和)。截至目前,评论还不多。
2025-05-02 04:54:12
1084
原创 Better debugging information for inlined kernel functions
其他方法,比如 tracepoints 和 Linux 安全模块(LSM)钩子,也能用于选择性内联函数,但 Liu 认为这些并不能真正替代正常的函数跟踪,因为在调试内核问题时,往往要到深入分析阶段才能明确需要跟踪哪些函数。最常见的编译器优化之一是函数内联:将函数体的代码直接嵌入调用者中,以避免函数调用的开销,并可能带来更多的优化机会。这就可能导致一种情况:一个函数仍然出现在二进制文件的符号表中(因为部分调用未被内联),但在跟踪时却无法看到调用它的地方(因为热点调用已被内联,该函数符号不再代表这些调用)。
2025-05-01 05:53:46
915
【高性能计算与加速器编程】基于Intel oneAPI的跨架构编程工具与优化:加速计算自由选择与硬件兼容性设计
2025-05-15
【网络通信技术】RDMA与InfiniBand关键技术解析:高性能计算领域网络互连与数据传输优化方案
2025-05-07
【网络流量管理】基于Traffic Shaping和ETS的多虚拟功能组带宽分配与调度:实现数据中心多类流量的精细化控制
2025-05-07
【网络虚拟化技术】HODA:高性能Open vSwitch数据平面优化设计与实现:多专用数据路径提升云网络性能
2025-05-01
【5G通信技术】vRAN 5G端到端系统优化与部署:构建无线通信网络的关键技术及应用场景分析
2025-05-01
【人工智能平台】Geti与国内AI平台SaaS巨头对比分析:模型训练、数据标注及部署方案综述
2025-05-01
### 【智能交通与传感器融合】基于Camera+mmWave雷达的一体化传感器融合系统设计与性能评估
2025-05-01
边缘计算Project Strata智能边缘平台演示:集群与应用编排及安全配置系统设计
2025-05-01
【5G通信技术】Intel CPU在5G基站中的应用与优化:从传统BTS到FlexRAN架构的演进及功耗管理
2025-05-01
【操作系统内存管理】mshare机制实现进程间页表共享:提升多进程数据库应用内存利用率的设计与API介绍
2025-05-02
【电信基础设施】OTII服务器系列产品演进与应用:从1U到2U及OTII-E的边缘计算部署方案综述
2025-05-01
【服务器管理】IPU Redfish服务器实现计划:硬件与软件更新接口及用例介绍
2025-04-29
【OpenVINO 2024.1】增强型生成式AI工作负载支持:大规模语言模型性能优化与广泛技术支持
2025-04-27
【人工智能硬件】面向企业级AI推理的多GPU解决方案:Intel Arc在中国市场的布局与优化
2025-04-26
【密码学与信息安全】基于SMx算法的加密性能优化:Intel QAT引擎在Sapphire Rapids平台上的实现与应用
2025-04-26
### 文章总结:Intel Ethernet Products 和 IPU 产品路线图及特性概述
2025-04-26
### 文章总结:基于英特尔架构的传感器融合技术在智能交通系统中的应用
2025-04-25
【Linux内存管理】统一页面热度信息源:内存管理对齐会议提案与kpromoted设计探讨文档的主要内容
2025-04-24
SPR TCO Analysis Report
2025-04-10
【网络时间同步技术】IEEE1588v2与SyncE时钟同步机制详解:频率与时相同步方案及其应用对比
2025-04-10
### 【智能交通系统】基于边缘计算的道路智能交通系统(ITS):多接入边缘计算(MEC)与C-V2X技术融合设计
2025-06-11
【计算机视觉与3D数据处理】Open3D:面向未来的全栈3D解决方案及其实时重建系统设计
2025-06-11
物联网车辆重识别算法优化:基于分布式训练和多数据集融合的车辆检索系统设计
2025-06-11
【物联网技术】高通道密度AI管道优化:多流视频处理性能提升与调试工具应用
2025-06-11
【交通技术解决方案】基于Intel技术的智慧机场与铁路系统的自动化与安全设计:涵盖车队管理、边缘计算及AI应用
2025-06-09
【边缘计算与人工智能】VPUX插件优化:硬件无关与特定优化技术在深度学习推理中的应用
2025-06-09
【工业自动化】工业控制器技术综述:应用场景、分类及发展趋势分析
2025-06-09
【工业自动化】现代工业控制器技术演进与市场现状分析:从PLC到智能制造的关键角色转变了文档的主要内容
2025-06-09
【Linux内核开发】复杂场景下DMA映射API改进:优化IOMMU路径与非scatterlist DMA-BUF操作设计
2025-06-06
### 【物联网与边缘计算】Intel 视频解决方案5Q路线图:城市与交通领域的视频处理及分析平台设计Intel针对城市和
2025-06-06
【网络与通信】AI网络中RoCEv2与netdev的集成及优化:高性能GPU集群通信系统设计
2025-05-31
【医疗影像处理】基于oneAPI的超声剪切波弹性成像优化:从临床应用到多阶段性能提升了文档的核心内容
2025-06-01
【深度学习推理优化】OpenVINO CPU插件框架与优化技术:图转换、即时编译及内存优化在高效推理中的应用OpenVINO CPU
2025-06-01
人工智能基于INT7量化改进推理精度:解决不同Xeon平台间模型饱和问题的技术方案
2025-05-31
【容器编排技术】Kubernetes架构与核心组件解析:自动化部署与管理容器化应用系统设计Kubernetes的基本概念
2025-06-01
### 【物联网与边缘计算】基于SPR EEC的PnP工作负载验证及性能评估:2022年第一季度技术分享
2025-06-01
【高性能计算与编程工具】Intel oneAPI工具套件:跨架构编程与加速计算解决方案
2025-06-01
【物联网领域】英特尔视频处理平台(VPP)技术解析:针对视频墙、视频会议和广播应用的市场分析与硬件设计
2025-05-27
【计算机视觉与推理】OpenVINO自动设备与推理服务:提升多硬件平台兼容性和性能优化的设计方案
2025-05-26
【深度学习部署】OpenVINO模型分析与性能调试案例研究:PaddlePaddle框架下PPYolo和PPOCR-rec模型优化及问题排查OpenVINO工具
2025-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人