IB读、IB写、OB读、OB写是什么意思?它们作为 Intel® PCM 的输出,同时监控 PCIe 带宽

2023-12-31

我正在尝试使用英特尔® 性能计数器监视器 (PCM) 工具测量 NIC 设备的 PCIe 带宽。但是,我无法理解它的输出。

为了测量 PCIe 带宽,我执行了二进制 pcm-iio。该二进制文件有助于测量每个 PCIe 设备的监视器 PCIe 带宽。执行二进制文件后,我得到以下输出。


|IIO Stack 2 - PCIe1          |IB write|IB read|OB read|OB write|TLB Miss|VT-d L3 Miss|VT-d CTXT Miss|VT-d Lookup|
|_____________________________|________|_______|_______|________|________|____________|______________|___________|
| Part0 (1st x16/x8/x4)       |4498 M  |9003 M |   0   |3256 K  |   0    |   0        |   0          |   0       |
| Part1 (2nd x4)              |   0    |   0   |   0   |   0    |
| Part2 (2nd x8/3rd x4)       |   0    |   0   |   0   |   0    |
| Part3 (4th x4)              |   0    |   0   |   0   |   0    |
|_____________________________|________|_______|_______|________|________|____________|______________|___________|

我想了解IB读、IB写、OB读和OB写是什么意思。


IB write是入站写入的缩写,是 PCIe 设备(在第一列中指定)请求通过 DMA 写入主内存的字节数。IB read是 PCIe 设备请求通过 DMA(“直接内存访问”)从主内存读取的字节数。无论是读请求还是写请求,都是设备向套接字(具体来说是设备所连接的 IIO 堆栈)发出请求。所以从套接字的角度来看,它是入站流量。

这些指标是使用DATA_REQ_OF_CPU非核心事件。具体来说,umask 0x1 的事件表示 4 字节入站写入请求,umask 0x4 的事件表示 4 字节入站读取请求。

OB write是出站写入的缩写,是处理器套接字请求通过 MMIO(“内存映射 I/O”)写入 PCIe 设备的字节数。OB read是处理器套接字请求通过 MMIO 从 PCIe 设备读取的字节数。

这些指标的测量方式与入站指标类似,不同之处在于DATA_REQ_BY_CPU而是使用 uncore 事件。

在旧版本的 pcm-iio 中,使用 IB 和 OB 的完整形式。

值得注意的是DATA_REQ_OF_CPU不测量内存带宽,而是测量连接到每个 IIO 堆栈的每个设备的 I/O 带宽。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IB读、IB写、OB读、OB写是什么意思?它们作为 Intel® PCM 的输出,同时监控 PCIe 带宽 的相关文章

随机推荐