Files
Inbox/系统基座文件/1/1.1/1.1.5 设备节点与总线映射 (Device Nodes & Bus Mapping).md
2025-12-11 07:24:36 +08:00

4.8 KiB
Raw Permalink Blame History

tags, date created, date modified
tags date created date modified
星期三, 十一月 19日 2025, 4:05:45 下午 星期三, 十一月 19日 2025, 4:06:00 下午

1.1.5 设备节点与总线映射 (Device Nodes & Bus Mapping)

1. 核心加速卡与显示设备识别 (GPU & Display Recognition)

  • 关键性P0

  • 信息解析

    • 设备状态:成功识别到 ID 为 1e3e:0002 的 Processing accelerator此即 天数智芯Iluvatar智铠 GPU。物理总线地址为 0001:01:00.0
    • 设备节点/dev/iluvatar0 已创建,且权限为 666 (crw-rw-rw-),这意味着用户态程序可以直接访问,驱动加载正常。
    • 显示设备:检测到 Phytium 原生显示控制器 (0001:02:00.0),映射为 /dev/dri/card0
  • 探测命令与结果:

    lspci -nn | grep -E "VGA|3D|Display|Processing|Accelerator"
    0001:01:00.0 Processing accelerators [1200]: Device [1e3e:0002] (rev 01)
    0001:02:00.0 Display controller [0380]: Phytium Technology Co., Ltd. Device [1db7:dc3e]
    
    ls -lR /dev/dri /dev/vfio /dev/iluvatar* 2>/dev/null
    crw-rw-rw- 1 root root 239, 0 11月 19 14:12 /dev/iluvatar0
    …
    

2. PCIe 链路带宽与完备性 (PCIe Link Status)

  • 关键性P0

  • 信息解析

    • 严重告警 (Network)dmesg 显示网迅网卡ngbe带宽受限。

      8.000 Gb/s available PCIe bandwidth, limited by 5.0 GT/s PCIe x2 link 网卡能力为 x4但实际协商或插槽仅支持 x2。这导致物理带宽上限仅为 8Gbps无法跑满双口万兆雷达高吞吐传输存在丢包风险。

    • 链路降级 (Link Downgrade)lspci 统计显示有多个设备状态为 downgraded。需确认 GPU (0001:01:00.0) 当前是跑在 Speed 16GT/s, Width x16 还是被降级。

  • 探测命令与结果:

    dmesg | grep -iE "smmu|iommu|pci|aer|firmware" | tail -n 20
    [    7.267461] ngbe 0000:0d:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 5.0 GT/s PCIe x2 link at 0000:09:04.0
    
    lspci -vv | grep -E "LnkCap:|LnkSta:" | grep -E "Speed|Width" | sort | uniq -c
          1                 LnkSta: Speed 16GT/s (downgraded), Width x8 (ok)
          1                 LnkSta: Speed 16GT/s (ok), Width x8 (downgraded)
    

3. IOMMU 组别与隔离 (IOMMU Groups)

  • 关键性P1

  • 信息解析

    • 功能状态IOMMU 已激活。
    • 分组详情
      • GPU (0001:01:00.0) 被分配在 Group 18
      • 网卡 (0000:0d:00.x) 被分配在 Group 19
    • 结论GPU 独占 Group 18这非常有利于通过 VFIO 进行直通Passthrough或用户态驱动开发隔离性良好。
  • 探测命令与结果:

    dmesg | grep -iE "smmu|iommu|pci|aer|firmware"
    [    6.942440] iommu: Adding device 0001:01:00.0 to group 18
    [    7.112576] iommu: Adding device 0000:0d:00.0 to group 19
    

4. 中断亲和性与分布 (Interrupt Affinity)

  • 关键性P1

  • 信息解析

    • NVMe 风险NVMe SSD 的中断 (nvme0q0, IRQ 124) 在终端输出时刻仅触发在 CPU0 上Count=37
    • USB 干扰:大量的 xhci_hcd (USB) 中断分布在 IRQ 128-146。
    • 建议:必须将雷达的高速信号采集卡中断和 NVMe 落盘中断手动绑定到不同的 CPU 核心,避免与 CPU0通常处理 OS 杂项)争抢。
  • 探测命令与结果:

    cat /proc/interrupts | grep -i "MSI" | head -n 20
    124:         37          00   ITS-MSI 135790592 Edge      nvme0q0
    

5. 块设备 IO 调度器 (Block Device IO Scheduler)

  • 关键性P2

  • 信息解析

    • NVMe 配置nvme0n1 当前调度器为 [none]
    • 结论优秀配置。对于 NVMe SSD使用 none (多队列直通) 能最大程度降低 CPU 开销最适合雷达原始数据Raw Data的高速落盘场景。
  • 探测命令与结果:

    grep "" /sys/block/*/queue/scheduler
    /sys/block/nvme0n1/queue/scheduler:[none] mq-deadline kyber bfq 
    

6. PCIe 最大有效载荷 (Max Payload Size)

  • 关键性P2

  • 信息解析

    • 多数设备协商在 512 bytes,但也有一部分在 128 bytes256 bytes
    • 若 GPU 或采集卡的 MPS (Max Payload Size) 不匹配(如一个 128 一个 512PCIe 控制器会强制按照木桶效应(最低值)传输,导致 DMA 效率下降 15%-30%。需确认 GPU 具体协商值。
  • 探测命令与结果:

    lspci -vv | grep -E "DevCtl:|DevCap:" | grep -E "MaxPayload|MaxReadReq" | sort | uniq -c
         15                 DevCap: MaxPayload 128 bytes…
         23                 DevCap: MaxPayload 512 bytes…