On Tue, Jul 16, 2024 at 05:25:22PM +0000, Konstantin Taranov wrote: > > > > Yes, you are. If user asked for specific functionality (max_inline_data != 0) and > > your device doesn't support it, you should return an error. > > > > pvrdma, mlx4 and rvt are not good examples, they should return an error as > > well, but because of being legacy code, we won't change them. > > > > Thanks > > > > I see. So I guess we can return a larger value, but not smaller. Right? > I will send v2 that fails QP creation then. > > In this case, may I submit a patch to rdma-core that queries device caps before > trying to create a qp in rdma_client.c and rdma_server.c? As that code violates > what you described. Let's ask Jason, why is that? Do we allow to ignore max_inline_data? librdmacm/examples/rdma_client.c 63 memset(&attr, 0, sizeof attr); 64 attr.cap.max_send_wr = attr.cap.max_recv_wr = 1; 65 attr.cap.max_send_sge = attr.cap.max_recv_sge = 1; 66 attr.cap.max_inline_data = 16; 67 attr.qp_context = id; 68 attr.sq_sig_all = 1; 69 ret = rdma_create_ep(&id, res, NULL, &attr); 70 // Check to see if we got inline data allowed or not 71 if (attr.cap.max_inline_data >= 16) 72 send_flags = IBV_SEND_INLINE; 73 else 74 printf("rdma_client: device doesn't support IBV_SEND_INLINE, " 75 "using sge sends\n"); > > Thanks > > >