--- tags: date created: 星期三, 十一月 19日 2025, 4:05:45 下午 date modified: 星期三, 十一月 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`。 - 探测命令与结果: ```bash 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] ``` ```bash 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` 还是被降级。 - 探测命令与结果: ```bash 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 ``` ```bash 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)或用户态驱动开发,隔离性良好。 - 探测命令与结果: ```bash 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 杂项)争抢。 - 探测命令与结果: ```bash cat /proc/interrupts | grep -i "MSI" | head -n 20 124: 37 0 … 0 ITS-MSI 135790592 Edge nvme0q0 ``` **5. 块设备 IO 调度器 (Block Device IO Scheduler)** - **关键性**:P2 - **信息解析**: - **NVMe 配置**:`nvme0n1` 当前调度器为 `[none]`。 - **结论**:**优秀配置**。对于 NVMe SSD,使用 `none` (多队列直通) 能最大程度降低 CPU 开销,最适合雷达原始数据(Raw Data)的高速落盘场景。 - 探测命令与结果: ```bash grep "" /sys/block/*/queue/scheduler /sys/block/nvme0n1/queue/scheduler:[none] mq-deadline kyber bfq ``` **6. PCIe 最大有效载荷 (Max Payload Size)** - **关键性**:P2 - **信息解析**: - 多数设备协商在 `512 bytes`,但也有一部分在 `128 bytes` 或 `256 bytes`。 - 若 GPU 或采集卡的 MPS (Max Payload Size) 不匹配(如一个 128 一个 512),PCIe 控制器会强制按照木桶效应(最低值)传输,导致 DMA 效率下降 15%-30%。需确认 GPU 具体协商值。 - 探测命令与结果: ```bash lspci -vv | grep -E "DevCtl:|DevCap:" | grep -E "MaxPayload|MaxReadReq" | sort | uniq -c 15 DevCap: MaxPayload 128 bytes… 23 DevCap: MaxPayload 512 bytes… ```