2025 年 Linux 内核十大技术创新|年终盘点 宋宝华 3 months 1 week ago 目前 6.17 合入的是一个 baby step,支持 P1 和 P2 本身在一个 CPU 上的时候的代理执行,目前显然没有实际意义,因为哪怕手机只有 8 个核,P1 和 P2 在同一个 CPU 的机会也很渺茫。由于 swap table 的显著优势来源于查询路径的缩短、locality 的提升、lock contention 的减小,相对 xarray 加速了 swapcache 的查询、修改等操作,属于基础设施的改善,其优势在服务器等场景会呈现较大的实用价值,对一些关键业务的吞吐量带来提升。 21cnbao
sched_ext: 让不同workload的不同cgroup有不同的调度器 宋宝华 3 months 1 week ago 来自Tejun Heo,为 sched_ext 增加了基于cgroup 的子调度器(sub-scheduler)支持,使多个 BPF 调度器可以按 cgroup 层级结构协同运行:父调度器负责在不同 cgroup(租户/分区)之间分配 CPU 资源,子调度器负责各自 cgroup 内部的任务调度。父 scheduler的。上图中,数据库系统的调度器能够理解查询的优先级和锁持有者的重要性(criticality)。虚拟机管理程序(VMM)可以与虚拟机内部的调度器协同,并智能地安排 vCPU 的位置。 21cnbao
延迟抢占用户态线程:调度器时间片扩展time slice extension 宋宝华 3 months 2 weeks ago 当内核同意时间片扩展时,会把 rseq::slice_ctrl::request清零,并将 rseq::slice_ctrl::granted置为 1,表示扩展已批准;想象用户态的线程A拿到了spinlock,由于用户态spinlock并不会像内核态spinlock那样禁止抢占,完全有可能线程B抢占线程A,线程B可能运行很久,而假设线程C需要等待线程A的spinlock释放,这个C的等待可能是非常长的。rseq::slice_ctrl::request =1,它。RSEQ的时间片扩展工作,主要由。 21cnbao
公平CFS调度类:SCHED_NORMAL、SCHED_BATCH和SCHED_IDLE 宋宝华 1 year 5 months ago 公平CFS调度类:SCHED_NORMAL、SCHED_BATCH和SCHED_IDLE,它们的相同与不同。 21cnbao
宋宝华:谈一谈Linux写时拷贝(COW)的安全漏洞(1) 宋宝华 4 years 4 months ago COW技术,爆出了巨大的漏洞,让父子进程间可以向对方泄露写过的新数据,成为了Linux内核的惊天大瓜。 21cnbao
CPU漏洞详解 宋宝华 4 years 7 months ago 1. 导言性能测试对于 Linux 发行版来说至关重要,Alibaba Cloud Linux 2 也是如此。(Alibaba Cloud Linux 2 是阿里巴巴操作系统团队推出的一款... 21cnbao
什么时候需要cpu_relax()锁 宋宝华 4 years 8 months ago 一个最典型的要使用pu_relax()锁的场景是忙等待(也就是死循环等一个事情的发生),在内核里面有大量的代码,比如等寄存器状态:比如做延迟:简单来说,你如果在内核里面写了忙等待的代码,都... 21cnbao
宋宝华:为了不忘却的纪念,评Linux 5.13内核 宋宝华 4 years 8 months ago Linux 5.14于14小时之前发布了,而我5.13的总结还没有写出,我早觉得有写一点东西的必要了,这虽然于搬砖的码农毫不相干,但在追求进步的工程师那里,却大抵只能如此而已。为了不忘却的... 21cnbao
深入理解Linux内核之进程睡眠(下) 宋宝华 4 years 9 months ago 4.用户态睡眠以sleep为例来说明任务在用户态是如何睡眠的。首先我们通过strace工具来看下其调用的系统调用:$stracesleep1 ... close(3)... 21cnbao
深入理解Linux内核之进程睡眠(上) 宋宝华 4 years 9 months ago 1开场白环境:处理器架构:arm64内核源码:linux-5.10.50ubuntu版本:20.04.1代码阅读工具:vim+ctags+cscope无论是任务处于用户态还是内核态,经常会... 21cnbao
谁为软件质量负责(背锅)? 宋宝华 4 years 9 months ago 这是一个残酷的世界,无论我们多么努力,结果可能还是不如意。这一点,软件人深有体会,不管我们多么认真地编码,多么仔细地测试,仍然无法抵挡Bug顽强地冒出来。如果Bug被发布出去了,谁将为此背... 21cnbao
近距离看GPU计算(3) 宋宝华 4 years 9 months ago 在先前文章《近距离看GPU计算(2)》中,我们谈到现代GPU发展出SIMT(Single Instruction Multiple Thread)的执行结构,硬件线程池的线程们有相对独立的... 21cnbao
宋宝华:slab在内核内存管理和用户态Memcached的双重存在 宋宝华 4 years 9 months ago 很多基础的概念,将跨越软件的层次而存在。比如slab,对于内核人员,我们都知道slab是buddy之上的一层。因为buddy作为Linux内核最底层的内存管理器,它分配1页,2页,4页,2... 21cnbao
给老徐的书《软件自动化测试实战解析-基于Python3》写的序 宋宝华 4 years 9 months ago 明代学者林希元有云:"自古圣贤之言学也,咸以躬行实践为先,识见言论次之",强调了实践是第一位的,而著书立说次之。唯有经过实践总结而成的书,方能对读者形成更强的指导意义。本书... 21cnbao
老徐自述:《软件自动化测试实战解析_基于Python3编程语言》 宋宝华 4 years 9 months ago 去年的时候,当我和身边一些朋友透露写书的想法时,有3位朋友以为我要写游记,另外至少有3位更不靠谱的朋友认为我要写段子。虽然我写过游记,也经常发段子(只为博身边的朋友们贱笑),还时不时分享辅... 21cnbao
再谈GPU的内存带宽 宋宝华 4 years 9 months ago 在先前的文章中《近距离看GPU计算(2)》,我们谈到GPU相比CPU有更大的内存带宽,此言不虚,这也是众核GPU有源源不断数据弹药供给,能够发挥强大算力的主要原因。如下表所示(GDDR和H... 21cnbao
Linux内核网络udp数据包发送(二)——UDP协议层分析 宋宝华 4 years 9 months ago 1. 前言本文分享了Linux内核网络数据包发送在UDP协议层的处理,主要分析了udp_sendmsg和udp_send_skb函数,并分享了UDP层的数据统计和监控以及socket发送队... 21cnbao
Linux内核网络UDP数据包发送(四)——Linux netdevice 子系统 宋宝华 4 years 9 months ago Linux内核网络UDP数据包发送系列:Linux内核网络UDP数据包发送(一)Linux内核网络UDP数据包发送(二)——UDP协议层分析Linux内核网络UDP数据包发送(三)——IP... 21cnbao