我正在浏览Mellanox驱动程序(mlx4),然后我很难理解哪部分代码对应于PF(物理函数驱动程序)执行的代码,以及哪部分代码对应于(虚拟函数驱动程序)在SRIOV模式下执行的代码。
我的困惑是因为,我的理解是QPs、CQs (以及它们的创建、状态管理命令)等将由虚拟函数驱动程序(VF驱动程序)执行。
而物理函数驱动程序(PF驱动程序)的作用只是负责resource_tracker.c和ICM的分配。
但最近,我想我可能理解错了。这是因为当mlx4_is_master为true/false(表示PF或VF)时,有专门执行的代码。
然后,还有一些不在此测试范围内的代码,这表明它在这两种情况下都会执行(PF驱动程序和VF驱动程序)。
我的理解正确吗?如果是,那么QPs、CQs和以太网tx、rx相关功能是由主设备和从设备执行的吗?
有没有什么方法可以清楚地将PF使用的文件和VF使用的文件在(drivers/net/ethernet/mlx4子目录)中分开?
我将真的很感激,真的很感谢在理解这一点上能得到的所有帮助/澄清。
非常感谢。
致以最好的问候,鲍勃
发布于 2015-03-01 23:45:04
如果有人感兴趣,这个问题也可以在这里发布和回答:http://linux-pci.vger.kernel.narkive.com/mxQuEb2w/mlx4-query-regarding-pf-vf-functionality-division
https://stackoverflow.com/questions/24362651
复制相似问题