linux – 是否可以写入在同一PCIe插槽上使用不同PCIe通道的多个设备?
作者:互联网
我正在编写一个支持多个设备的Linux设备驱动程序.我有一个x8 PCIe卡,上面有4个这样的设备.每个都通过PCIe交换机运行并获得2个PCIe通道.有没有办法让驱动程序同时写入多个通道?如果是这样,我该怎么做?我认为它应该是可能的,因为它全部在一个PCIe插槽上,但我不知道如何从驱动程序完成.
解决方法:
听起来你正在寻找PCIe组播.这与通道的数量没有关联,但仅仅是尽可能有效地向多个目的地提供单个写入的功能.有一个标准,主要用于背板用途,请参阅:http://www.pcisig.com/developers/main/training_materials/get_document?doc_id=12f5c260ccf5e054366d4c96ee655fa6827db5b3
看起来新的PCI BAR类型支持这种情况,其中多个设备具有相同的映射物理地址范围,并且交换机也将配置为了解该多播范围.但这一切都需要操作系统支持,我还没有在网上找到任何建议Linux有必要配置设备来完成所有这些.
由于您的父链接具有足够的带宽来使所有四个子链接饱和,因此您没有吞吐量问题.您使用多播保存的唯一内容是来自内存子系统的带宽.如果你有一个现代的建筑,你节省的金额将是噪音.
换句话说,不要担心.将您的设备视为独立设备(无论如何,这将使驾驶员更加清洁)并继续您的项目.
标签:linux,pci-e,linux-kernel,driver 来源: https://codeday.me/bug/20190901/1785790.html