PCIe设备之间的点对点通信?

时间:2016-10-10 08:26:21

标签: p2p pci-e ssd

为了在NVMe SSD和其他PCIe设备之间启用p2p通信,我想知道是否需要对Linux内核和NVMe驱动程序进行一些修改,还有其他什么?我应该做些什么修改?我已经搜索了几天,但是关于这个的信息很少,我需要一些参考。 非常感谢!

1 个答案:

答案 0 :(得分:0)

有NVMe规范。该功能称为“控制器内存缓冲区写入数据”。反过来,CMB写数据支持NVMe设备与PCIe总线上的其他设备之间的P2P事务。尽管大多数CMB规范已在最新的上游内核中实现,但CMB写数据尚未实现。 CMB的问题在于,它为这些P2P事务提供的内存很少。这是尚无人在上游实施此功能的原因之一。但是,您可以通过用户空间NVMe驱动程序/框架SPDK来使用它。

还要注意,有一个新的NVMe规范。称为持久性存储区的功能这有更多的记忆可玩,我怀疑有人会在不久的将来在上游做出贡献。

https://www.flashmemorysummit.com/English/Collaterals/Proceedings/2018/20180808_SOFT-201-1_Bates.pdf是有用的背景材料。