<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Linux 内核 on Hellokitty&#39;s Blog</title>
    <link>https://yangyang233333.github.io/tags/linux-%E5%86%85%E6%A0%B8/</link>
    <description>Recent content in Linux 内核 on Hellokitty&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Mon, 24 Aug 2026 14:49:50 +0800</lastBuildDate>
    <atom:link href="https://yangyang233333.github.io/tags/linux-%E5%86%85%E6%A0%B8/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Phoenix 论文阅读：一种不使用伪缓冲区的 GPU Direct Storage 重构方案</title>
      <link>https://yangyang233333.github.io/posts/phoenix-paper-chinese-translation/</link>
      <pubDate>Mon, 24 Aug 2026 14:49:50 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/phoenix-paper-chinese-translation/</guid>
      <description>按原论文结构详译 SC&#39;25 论文 Phoenix：解释 NVIDIA GDS 的伪缓冲区问题、基于 ZONE_DEVICE 的 GPU 显存映射、POSIX/io_uring 编程模型，以及本地 NVMe、远程存储、KV Cache 和模型加载实验。</description>
    </item>
    <item>
      <title>Phoenix 源码解读：把 GPU 显存变成 Linux I/O 可直达的内存</title>
      <link>https://yangyang233333.github.io/posts/phoenix-source-code-reading/</link>
      <pubDate>Mon, 24 Aug 2026 14:40:15 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/phoenix-source-code-reading/</guid>
      <description>深入解析 xPU-IO/Phoenix：它如何通过内核模块、用户态库和应用适配器，将 SSD 数据直接送入 GPU 显存；并比较 full BAR、staging、batch、stream 等数据路径的实现与取舍。</description>
    </item>
    <item>
      <title>nvidia-fs 源码阅读（一）：模块初始化、设备接口与整体架构</title>
      <link>https://yangyang233333.github.io/posts/nvidia-fs-source-code-reading-architecture/</link>
      <pubDate>Fri, 21 Aug 2026 10:45:00 +0800</pubDate>
      <guid>https://yangyang233333.github.io/posts/nvidia-fs-source-code-reading-architecture/</guid>
      <description>&lt;p&gt;&lt;code&gt;nvidia-fs&lt;/code&gt; 是 NVIDIA GPUDirect Storage（GDS）的 Linux 内核模块。它不是一种文件系统，而是连接 &lt;code&gt;libcufile&lt;/code&gt;、NVIDIA GPU 驱动、Linux 文件 I/O 和支持 GPUDirect 的存储驱动的一层内核协调组件。&lt;/p&gt;
&lt;p&gt;这组文章阅读 NVIDIA 官方 &lt;code&gt;gds-nvidia-fs&lt;/code&gt; 仓库，采用的版本为：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;commit: 328d1d8cce1175c013720985c30e123e9a35242c
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;GDS_VERSION: 2.29.4
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;commit date: 2026-06-01
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;系列分为三篇：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;模块初始化、设备接口与整体架构；&lt;/li&gt;
&lt;li&gt;GPU 内存注册、页表与 DMA 映射；&lt;/li&gt;
&lt;li&gt;文件 I/O、批量请求、完成路径与可观测性。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;本文先回答一个问题：加载 &lt;code&gt;nvidia_fs.ko&lt;/code&gt; 后，内核里究竟多了什么？&lt;/p&gt;
&lt;h2 id=&#34;一源码目录&#34;&gt;一、源码目录&lt;/h2&gt;
&lt;p&gt;核心代码都位于 &lt;code&gt;src/&lt;/code&gt;：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;文件&lt;/th&gt;
					&lt;th&gt;职责&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;nvfs-core.c/.h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;字符设备、ioctl、GPU 内存注册和文件 I/O 主流程&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;nvfs-mod.c&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;与 NVMe、RDMA 等外部模块动态注册 DMA 回调&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;nvfs-mmap.c/.h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;GPU 页对应的影子 &lt;code&gt;struct page&lt;/code&gt; 和 mmap 管理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;nvfs-dma.c/.h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;block request 到 GPU DMA 地址的映射&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;nvfs-batch.c/.h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;批量 I/O 提交与完成&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;nvfs-rdma.c/.h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;RDMA 注册信息管理&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;nvfs-pci.c/.h&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;GPU 与存储设备的 PCIe 拓扑、距离和亲和性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;nvfs-proc.c&lt;/code&gt;、&lt;code&gt;nvfs-stat.c&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;/proc&lt;/code&gt; 配置、统计和诊断接口&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;nvfs-kernel-interface.c&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;不同 Linux 内核版本的兼容封装&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;主线集中在 &lt;code&gt;nvfs-core.c&lt;/code&gt;，但真正的数据直达能力是多个文件共同完成的。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
