性能优化

深入 Linux vDSO:用户态加速系统调用的零拷贝艺术

本文深入剖析 Linux vDSO(Virtual Dynamic Shared Object)机制——内核如何将用户态可执行代码映射到进程地址空间,使 clock_getdaytime 等高频系统调用完全绕过内核态切换,实现零上下文切换的极致加速。覆盖 vsyscall 历史、ELF 加载流程、seqlock 无锁设计、sigreturn 优化、ARM64/x86 差异与工程陷阱排查。

Linux Sched-Ext:BPF 可编程调度器框架深度实战

Linux 6.12 引入的 sched_ext 框架允许通过 BPF 程序动态定义 CPU 调度策略,无需修改内核代码。本文深入剖析 SCX_OPS 生命周期、DSQ 机制、watchdog 限制,并通过完整的生产级 BPF 调度器源码演示从零搭建,附 Meta/Google 部署数据。

Linux 线程池与 CPU 亲和性深度实战:从 CFS 调度器到用户态完美绑核的终极指南

从 Linux CFS 调度器内部机制出发,全面解析 CPU 亲和性(Affinity)的理论基础与工程实战。涵盖 sched_setaffinity 系统调用、CPUID 指令读取拓扑、NUMA 节点本地内存访问优化、cgroup v2 cpuset 控制器、CPU 隔离(isolcpus/nohz_full/rcu_nocbs)、DPDK 轮询线程绑核、用户态线程池绑核架构设计,以及 False Sharing 规避与 Cache Line 对齐。

Linux 系统调用深度实战:从 int 0x80 到 VDSO 与 io_uring 的 Syscall Entry/Exit 内核实现与 eBPF 追踪

从硬件指令层拆解 Linux 系统调用的完整生命周期:syscall 历史演进(int 0x80→sysenter→syscall)、entry_SYSCALL_64 汇编级的 swapgs/per-cpu/pt_regs 构建安全分析、VDSO 如何让 gettimeofday 绕过 syscall、vDSY vs ASLR 兼容、syscall 分发表、Spectre/Meltdown 对 syscall 延迟的量化影响、sysret 与 iret 返回路径选择、io_uring 用共享环形队列绕过 syscall 的架构、eBPF tracepoint/kprobe/fentry 三种观测方式对比、strace 的 ptrace 代价与替代方案、生产环境减少 syscall 频率的 7 种工程策略、跨架构对比(x86_64/ARM64/RISC-V)。