创建仓库
This commit is contained in:
110
系统基座文件/1/1.1/1.1.5 设备节点与总线映射 (Device Nodes & Bus Mapping).md
Normal file
110
系统基座文件/1/1.1/1.1.5 设备节点与总线映射 (Device Nodes & Bus Mapping).md
Normal file
@@ -0,0 +1,110 @@
|
||||
---
|
||||
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…
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user