Hi Sherry, Arnd, On 10/11/20 8:29 pm, Arnd Bergmann wrote: > On Tue, Nov 10, 2020 at 3:20 PM Kishon Vijay Abraham I <kishon@xxxxxx> wrote: >> On 10/11/20 7:55 am, Sherry Sun wrote: > >>> But for VOP, only two boards are needed(one board as host and one board as card) to realize the >>> communication between the two systems, so my question is what are the advantages of using NTB? >> >> NTB is a bridge that facilitates communication between two different >> systems. So it by itself will not be source or sink of any data unlike a >> normal EP to RP system (or the VOP) which will be source or sink of data. >> >>> Because I think the architecture of NTB seems more complicated. Many thanks! >> >> yeah, I think it enables a different use case all together. Consider you >> have two x86 HOST PCs (having RP) and they have to be communicate using >> PCIe. NTB can be used in such cases for the two x86 PCs to communicate >> with each other over PCIe, which wouldn't be possible without NTB. > > I think for VOP, we should have an abstraction that can work on either NTB > or directly on the endpoint framework but provide an interface that then > lets you create logical devices the same way. > > Doing VOP based on NTB plus the new NTB_EPF driver would also > work and just move the abstraction somewhere else, but I guess it > would complicate setting it up for those users that only care about the > simpler endpoint case. I'm not sure if you've got a chance to look at [1], where I added support for RP<->EP system both running Linux, with EP configured using Linux EP framework (as well as HOST ports connected to NTB switch, patches 20 and 21, that uses the Linux NTB framework) to communicate using virtio over PCIe. The cover-letter [1] shows a picture of the two use cases supported in that series. [1] -> http://lore.kernel.org/r/20200702082143.25259-1-kishon@xxxxxx Thank You, Kishon