On Tue, Jun 16, 2020 at 11:53:11AM +0300, Gal Pressman wrote: > On 16/06/2020 9:30, Leon Romanovsky wrote: > > On Mon, Jun 15, 2020 at 10:59:20AM +0300, Gal Pressman wrote: > >> Provider specific attributes which are necessary for the userspace > >> functionality should be part of the alloc ucontext response, not query > >> device. This way a userspace provider could work without issuing a query > >> device verb call. However, the fields will remain in the query device > >> ABI in order to maintain backwards compatibility. > > > > I don't really understand why "should be ..."? Device properties exposed > > here are per-device and will be equal to all ucontexts, so instead of > > doing one very fast system call, you are "punishing" every ucontext > > call. > > I talked about it with Jason in the past, the query device verb is intended to > follow the IBA verb, alloc ucontext should return driver specific data that's > required to operate the user space provider. > A query device call should not be mandatory to load the provider. Why? query_device is declared as mandatory verb for any provider, so anyway all in-the-tree RDMA drivers will have such verb. > > Whether it's done through query device/ucontext response, both happen for each > new context call. With this patch, we gather all needed data in one system call > instead of two. Is it important in control path to have one call? > > > What is wrong with calling one query_device before allocating any > > ucontext? What are you trying to achieve and what will it give? > > How can you call query device without allocating a context? Forget about my comment above, it was my over-thinking. I had in mind some scheme that first ucontext will cache the all device related data and share it with other ucontexts. Thanks