创建仓库

This commit is contained in:
2025-12-11 07:24:36 +08:00
commit 0d81c1792d
128 changed files with 15104 additions and 0 deletions

View 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 一个 512PCIe 控制器会强制按照木桶效应(最低值)传输,导致 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…
```