<div dir="ltr"><div><div><div><div><div>One of the things that worries me is that we develop specialized APIs based on function vectors.<br><br></div>That kind functionality is already provided by the shared library systems in Linux. Could not be each of the modules that we talked about just be mapped to a shared library and define the API simply that way? There are mechanisms in place to deal with compatibility issues. <br>
<br>What are the specific requirements that prevent us from using the standard library approach? If at all possible we should simply use what is there.<br><br></div><br></div>Then regarding the separation between user space and kernel space: There are alternate approaches possible to the use of IBverbs. The Linux kernel has added a VFIO interface that allows exposure of device driver controls to user space. If we could base libfabrics on that API instead then the RDMA approach would be generically be usable with any device that supports VFIO.<br>
<br><a href="http://lwn.net/Articles/509153/">http://lwn.net/Articles/509153/</a><br><br></div>We could slim down the components needed in the kernel and provide some simpler management APIs. The IBverbs code per se could be in userspace.<br>
<br></div>In fact in our company we have some tentative ideas that we could avoid going through IBverbs by going through VFIO. The problem there is that no standard user space APIs exist to interact with a device. Having such an API would allow a generic way to use RDMA with devices. We have a couple o vendors that are already providing some simplistic proprietary libraries here. Standardization would be good.<br>
<br><br></div>