Linux 6.6 UDP Socket connect 调用链源码分析 1. 概述UDP 是无连接协议,但应用程序仍可调用 connect() 将 socket 与远端地址绑定。对于 UDP 而言,connect() 并不进行三次握手,而是完成路由查找及 socket 状态和路由缓存的更新。 1.1. 小结UDP socket 的 connect() 调用在内核中经历了一条清晰的路径: 系统调用层 系统调用通过 ops 找到 ip4_datagram_connec 2026-09-24
内核启动:从 ACPI 到 device_add 的 PCI 枚举调用链 梳理 X86_64 服务器内核启动阶段,ACPI 子系统如何一路调用到 device_add(&dev->dev),完成 PCI 设备的注册与 driver core 接入。 本文中所有代码引用均基于内核 v7.2-rc2-22-g0e35b9b6ec0f 的源码。【Claude-4.7-Opus】 0.1. 调用链全景12345678910111213141516171819202 2026-07-16 AI #ai #linux-kernel #pcie #pci #enumeration #acpi
Linux 驱动 ko 动态加载:uevent、udev、kmod 协作机制 姊妹篇 Linux 内核 PCI:pci_dev 是如何与 driver 建立绑定的 提到:当 pci_dev 枚举出来时,若对应驱动的 ko 还没加载,路径 A 会”空手而归”,pci_dev 只是”就位”等待。真正让这条链闭合的,是内核 → udev → kmod → modprobe → pci_register_driver → 路径 B 回补 probe 这一套用户态协作。 本文专门梳理 2026-07-09 AI #ai #linux-kernel #udev #kmod #uevent #modalias #hotplug
Linux 内核 PCI:pci_dev 是如何与 driver 建立绑定的(match / probe 双路径) 本文接续 Linux 内核 PCI 枚举:pci_scan_slot 及其调用链梳理,讨论 pci_device_add() 末尾那一句 device_add(&dev->dev) 之后,driver core 到底做了什么,pci_dev 是如何”找到”驱动并最终跑到驱动 .probe 的。 本文中所有代码引用均基于内核 v7.2-rc2-22-g0e35b9b6ec0f 的源码。 2026-07-09 AI #ai #linux-kernel #pcie #pci #driver-core #probe
Linux 内核 PCI 枚举:pci_scan_slot 及其调用链梳理 本文梳理 Linux 内核 PCI 枚举过程中 pci_scan_slot 函数及其调用链的实现。 本文中所有代码引用均基于内核 v7.2-rc2-22-g0e35b9b6ec0f 的源码。【Claude-4.7-Opus】 1234567891011121314pci_scan_slot(bus, devfn=D×8) └─► pci_scan_single_device(bus, D×8+f 2026-07-09 AI #ai #linux-kernel #pcie #pci #enumeration
PCIe ARI(Alternative Routing-ID Interpretation):为什么需要 & 如何工作 本文整理了 PCIe ARI 的背景动机与技术方法,以及 Linux 内核在 PCI 枚举扫描过程中对 ARI 的使用方式。讨论主线:传统 PCI BDF 的 8-function 限制 → SR-IOV 大量 VF 的编址困境 → ARI 的解决方案 → 内核实现细节。 本文中所有代码引用均基于内核 v7.2-rc2-22-g0e35b9b6ec0f 的源码。【Claude-4.7-Opus】 2026-07-09 AI #ai #linux-kernel #pcie #pci #sr-iov #ari
SONiC Port MTU 更新流程详解(以 Tofino 芯片为例) 0.1. 场景 用户在 SONiC 设备上执行 sudo config interface mtu eth0 2000,把 eth0 端口的 MTU 改为 2000。 本文从 CLI 一路追踪到 ASIC 硬件寄存器写入,覆盖每一层涉及的进程、Redis 数据库变化、消息通道、关键代码与时间顺序。 本文中所有代码引用均基于本机 /Users/martinzhang/git/sonic/ 目录下的真 2026-06-30 AI #ai #sonic #sai
nftables Set:用 O(1) 哈希查找替代 O(N) 链表遍历 一句话核心:nftables 把”原本要逐条匹配的规则”抽象成”集合 (set) 元素”,数据面只需对集合做一次哈希/树查找就能拿到结果,从根本上消除了 iptables 时代”规则数 = 服务数 × k”带来的 O(N) 线性遍历瓶颈。 0.1. 一、问题起源:iptables 为何慢在 iptables 时代,K8s 5000 个 Service 会被翻译成几万条规则 2026-06-26 AI #ai #nftables
EBGP:跨AZ的路由学习心得 整理自实际配置场景的讨论笔记,覆盖:路由传播流水线、EBGP/IBGP 行为差异、next-hop-self、IBGP 建邻规则、扩展性问题与解法。 0.1. 一、拓扑12345678AS 100 (内部 OSPF + IBGP, R3 配 next-hop-self) AS 200┌──────────────────────────────────── 2026-06-26 AI #ai #bgp
RDMA学习2:memory window in rdma MR Window(Memory Window,MW,内存窗口) 是 RDMA 里绑定在 MR 上的、可动态授权/回收的细粒度访问控制对象,用来解决”大 MR、多租户、动态权限”问题。可以理解成:MR 是整片内存,MW 是从 MR 里切出来的、能单独控制权限的小窗口。 0.1. 一、MR 与 MW 的关系0.1.1. MR(Memory Region,内存区域) 把一段内存注册给 RNI 2026-05-20 AI #rdma #ai